// export AmericanPerson ; export function PrepareRussians ; var Ru1_turrets , Ru2_turrets , Am1_turrets , i , un , l , SolLevel , EngLevel , MechLevel , DocLevel , x ; begin
   0: LD_INT 0
   2: PPUSH
   3: PPUSH
   4: PPUSH
   5: PPUSH
   6: PPUSH
   7: PPUSH
   8: PPUSH
   9: PPUSH
  10: PPUSH
  11: PPUSH
  12: PPUSH
  13: PPUSH
// SolLevel := [ 6 , 6 , 7 ] [ Difficulty ] ;
  14: LD_ADDR_VAR 0 8
  18: PUSH
  19: LD_INT 6
  21: PUSH
  22: LD_INT 6
  24: PUSH
  25: LD_INT 7
  27: PUSH
  28: EMPTY
  29: LIST
  30: LIST
  31: LIST
  32: PUSH
  33: LD_OWVAR 67
  37: ARRAY
  38: ST_TO_ADDR
// EngLevel := [ 5 , 6 , 6 ] [ Difficulty ] ;
  39: LD_ADDR_VAR 0 9
  43: PUSH
  44: LD_INT 5
  46: PUSH
  47: LD_INT 6
  49: PUSH
  50: LD_INT 6
  52: PUSH
  53: EMPTY
  54: LIST
  55: LIST
  56: LIST
  57: PUSH
  58: LD_OWVAR 67
  62: ARRAY
  63: ST_TO_ADDR
// MechLevel := [ 5 , 6 , 7 ] [ Difficulty ] ;
  64: LD_ADDR_VAR 0 10
  68: PUSH
  69: LD_INT 5
  71: PUSH
  72: LD_INT 6
  74: PUSH
  75: LD_INT 7
  77: PUSH
  78: EMPTY
  79: LIST
  80: LIST
  81: LIST
  82: PUSH
  83: LD_OWVAR 67
  87: ARRAY
  88: ST_TO_ADDR
// DocLevel := [ 5 , 5 , 6 ] [ Difficulty ] ;
  89: LD_ADDR_VAR 0 11
  93: PUSH
  94: LD_INT 5
  96: PUSH
  97: LD_INT 5
  99: PUSH
 100: LD_INT 6
 102: PUSH
 103: EMPTY
 104: LIST
 105: LIST
 106: LIST
 107: PUSH
 108: LD_OWVAR 67
 112: ARRAY
 113: ST_TO_ADDR
// Ru1_turrets := FilterAllUnits ( [ [ f_side , 3 ] , [ f_btype , b_bunker ] ] ) ^ FilterAllUnits ( [ [ f_side , 3 ] , [ f_btype , b_breastwork ] ] ) ;
 114: LD_ADDR_VAR 0 2
 118: PUSH
 119: LD_INT 22
 121: PUSH
 122: LD_INT 3
 124: PUSH
 125: EMPTY
 126: LIST
 127: LIST
 128: PUSH
 129: LD_INT 30
 131: PUSH
 132: LD_INT 32
 134: PUSH
 135: EMPTY
 136: LIST
 137: LIST
 138: PUSH
 139: EMPTY
 140: LIST
 141: LIST
 142: PPUSH
 143: CALL_OW 69
 147: PUSH
 148: LD_INT 22
 150: PUSH
 151: LD_INT 3
 153: PUSH
 154: EMPTY
 155: LIST
 156: LIST
 157: PUSH
 158: LD_INT 30
 160: PUSH
 161: LD_INT 31
 163: PUSH
 164: EMPTY
 165: LIST
 166: LIST
 167: PUSH
 168: EMPTY
 169: LIST
 170: LIST
 171: PPUSH
 172: CALL_OW 69
 176: ADD
 177: ST_TO_ADDR
// Ru2_turrets := FilterAllUnits ( [ [ f_side , 6 ] , [ f_btype , b_bunker ] ] ) ;
 178: LD_ADDR_VAR 0 3
 182: PUSH
 183: LD_INT 22
 185: PUSH
 186: LD_INT 6
 188: PUSH
 189: EMPTY
 190: LIST
 191: LIST
 192: PUSH
 193: LD_INT 30
 195: PUSH
 196: LD_INT 32
 198: PUSH
 199: EMPTY
 200: LIST
 201: LIST
 202: PUSH
 203: EMPTY
 204: LIST
 205: LIST
 206: PPUSH
 207: CALL_OW 69
 211: ST_TO_ADDR
// x = [ 2 , 3 , 3 ] [ Difficulty ] ;
 212: LD_ADDR_VAR 0 12
 216: PUSH
 217: LD_INT 2
 219: PUSH
 220: LD_INT 3
 222: PUSH
 223: LD_INT 3
 225: PUSH
 226: EMPTY
 227: LIST
 228: LIST
 229: LIST
 230: PUSH
 231: LD_OWVAR 67
 235: ARRAY
 236: ST_TO_ADDR
// hc_importance = 0 ;
 237: LD_ADDR_OWVAR 32
 241: PUSH
 242: LD_INT 0
 244: ST_TO_ADDR
// hc_basic_skills = [ Rand ( 0 , 2 ) , Rand ( 0 , 2 ) , Rand ( 0 , 2 ) , Rand ( 0 , 2 ) ] ;
 245: LD_ADDR_OWVAR 30
 249: PUSH
 250: LD_INT 0
 252: PPUSH
 253: LD_INT 2
 255: PPUSH
 256: CALL_OW 12
 260: PUSH
 261: LD_INT 0
 263: PPUSH
 264: LD_INT 2
 266: PPUSH
 267: CALL_OW 12
 271: PUSH
 272: LD_INT 0
 274: PPUSH
 275: LD_INT 2
 277: PPUSH
 278: CALL_OW 12
 282: PUSH
 283: LD_INT 0
 285: PPUSH
 286: LD_INT 2
 288: PPUSH
 289: CALL_OW 12
 293: PUSH
 294: EMPTY
 295: LIST
 296: LIST
 297: LIST
 298: LIST
 299: ST_TO_ADDR
// for i in Ru1_Turrets do
 300: LD_ADDR_VAR 0 5
 304: PUSH
 305: LD_VAR 0 2
 309: PUSH
 310: FOR_IN
 311: IFFALSE 490
// begin if IsInUnit ( i ) = 0 then
 313: LD_VAR 0 5
 317: PPUSH
 318: CALL_OW 310
 322: PUSH
 323: LD_INT 0
 325: EQUAL
 326: IFFALSE 488
// begin uc_side = 3 ;
 328: LD_ADDR_OWVAR 20
 332: PUSH
 333: LD_INT 3
 335: ST_TO_ADDR
// uc_nation = 3 ;
 336: LD_ADDR_OWVAR 21
 340: PUSH
 341: LD_INT 3
 343: ST_TO_ADDR
// hc_gallery =  ;
 344: LD_ADDR_OWVAR 33
 348: PUSH
 349: LD_STRING 
 351: ST_TO_ADDR
// hc_name =  ;
 352: LD_ADDR_OWVAR 26
 356: PUSH
 357: LD_STRING 
 359: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 360: LD_ADDR_OWVAR 29
 364: PUSH
 365: LD_INT 9
 367: PPUSH
 368: LD_INT 11
 370: PPUSH
 371: CALL_OW 12
 375: PUSH
 376: LD_INT 10
 378: PPUSH
 379: LD_INT 12
 381: PPUSH
 382: CALL_OW 12
 386: PUSH
 387: EMPTY
 388: LIST
 389: LIST
 390: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 5 ) , Rand ( 2 , 5 ) , Rand ( 0 , 4 ) ] ;
 391: LD_ADDR_OWVAR 31
 395: PUSH
 396: LD_VAR 0 8
 400: PUSH
 401: LD_INT 1
 403: PPUSH
 404: LD_INT 5
 406: PPUSH
 407: CALL_OW 12
 411: PUSH
 412: LD_INT 2
 414: PPUSH
 415: LD_INT 5
 417: PPUSH
 418: CALL_OW 12
 422: PUSH
 423: LD_INT 0
 425: PPUSH
 426: LD_INT 4
 428: PPUSH
 429: CALL_OW 12
 433: PUSH
 434: EMPTY
 435: LIST
 436: LIST
 437: LIST
 438: LIST
 439: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 440: LD_ADDR_OWVAR 27
 444: PUSH
 445: LD_INT 1
 447: PPUSH
 448: LD_INT 2
 450: PPUSH
 451: CALL_OW 12
 455: ST_TO_ADDR
// hc_class = 1 ;
 456: LD_ADDR_OWVAR 28
 460: PUSH
 461: LD_INT 1
 463: ST_TO_ADDR
// un := CreateHuman ;
 464: LD_ADDR_VAR 0 6
 468: PUSH
 469: CALL_OW 44
 473: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 474: LD_VAR 0 6
 478: PPUSH
 479: LD_VAR 0 5
 483: PPUSH
 484: CALL_OW 52
// end ; end ;
 488: GO 310
 490: POP
 491: POP
// uc_side = 6 ;
 492: LD_ADDR_OWVAR 20
 496: PUSH
 497: LD_INT 6
 499: ST_TO_ADDR
// uc_nation = 3 ;
 500: LD_ADDR_OWVAR 21
 504: PUSH
 505: LD_INT 3
 507: ST_TO_ADDR
// hc_gallery =  ;
 508: LD_ADDR_OWVAR 33
 512: PUSH
 513: LD_STRING 
 515: ST_TO_ADDR
// hc_name =  ;
 516: LD_ADDR_OWVAR 26
 520: PUSH
 521: LD_STRING 
 523: ST_TO_ADDR
// for i in Ru2_Turrets do
 524: LD_ADDR_VAR 0 5
 528: PUSH
 529: LD_VAR 0 3
 533: PUSH
 534: FOR_IN
 535: IFFALSE 726
// begin if IsInUnit ( i ) = 0 then
 537: LD_VAR 0 5
 541: PPUSH
 542: CALL_OW 310
 546: PUSH
 547: LD_INT 0
 549: EQUAL
 550: IFFALSE 724
// begin uc_side = 6 ;
 552: LD_ADDR_OWVAR 20
 556: PUSH
 557: LD_INT 6
 559: ST_TO_ADDR
// uc_nation = 3 ;
 560: LD_ADDR_OWVAR 21
 564: PUSH
 565: LD_INT 3
 567: ST_TO_ADDR
// hc_gallery =  ;
 568: LD_ADDR_OWVAR 33
 572: PUSH
 573: LD_STRING 
 575: ST_TO_ADDR
// hc_name =  ;
 576: LD_ADDR_OWVAR 26
 580: PUSH
 581: LD_STRING 
 583: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 584: LD_ADDR_OWVAR 29
 588: PUSH
 589: LD_INT 9
 591: PPUSH
 592: LD_INT 11
 594: PPUSH
 595: CALL_OW 12
 599: PUSH
 600: LD_INT 10
 602: PPUSH
 603: LD_INT 12
 605: PPUSH
 606: CALL_OW 12
 610: PUSH
 611: EMPTY
 612: LIST
 613: LIST
 614: ST_TO_ADDR
// hc_skills = [ SolLevel - Rand ( 0 , 1 ) , Rand ( 1 , 5 ) , Rand ( 2 , 5 ) , Rand ( 0 , 4 ) ] ;
 615: LD_ADDR_OWVAR 31
 619: PUSH
 620: LD_VAR 0 8
 624: PUSH
 625: LD_INT 0
 627: PPUSH
 628: LD_INT 1
 630: PPUSH
 631: CALL_OW 12
 635: MINUS
 636: PUSH
 637: LD_INT 1
 639: PPUSH
 640: LD_INT 5
 642: PPUSH
 643: CALL_OW 12
 647: PUSH
 648: LD_INT 2
 650: PPUSH
 651: LD_INT 5
 653: PPUSH
 654: CALL_OW 12
 658: PUSH
 659: LD_INT 0
 661: PPUSH
 662: LD_INT 4
 664: PPUSH
 665: CALL_OW 12
 669: PUSH
 670: EMPTY
 671: LIST
 672: LIST
 673: LIST
 674: LIST
 675: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 676: LD_ADDR_OWVAR 27
 680: PUSH
 681: LD_INT 1
 683: PPUSH
 684: LD_INT 2
 686: PPUSH
 687: CALL_OW 12
 691: ST_TO_ADDR
// hc_class = 1 ;
 692: LD_ADDR_OWVAR 28
 696: PUSH
 697: LD_INT 1
 699: ST_TO_ADDR
// un := CreateHuman ;
 700: LD_ADDR_VAR 0 6
 704: PUSH
 705: CALL_OW 44
 709: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 710: LD_VAR 0 6
 714: PPUSH
 715: LD_VAR 0 5
 719: PPUSH
 720: CALL_OW 52
// end ; end ;
 724: GO 534
 726: POP
 727: POP
// Am1_turrets := FilterAllUnits ( [ [ f_side , 1 ] , [ f_btype , b_bunker ] ] ) ;
 728: LD_ADDR_VAR 0 4
 732: PUSH
 733: LD_INT 22
 735: PUSH
 736: LD_INT 1
 738: PUSH
 739: EMPTY
 740: LIST
 741: LIST
 742: PUSH
 743: LD_INT 30
 745: PUSH
 746: LD_INT 32
 748: PUSH
 749: EMPTY
 750: LIST
 751: LIST
 752: PUSH
 753: EMPTY
 754: LIST
 755: LIST
 756: PPUSH
 757: CALL_OW 69
 761: ST_TO_ADDR
// for i in Am1_turrets do
 762: LD_ADDR_VAR 0 5
 766: PUSH
 767: LD_VAR 0 4
 771: PUSH
 772: FOR_IN
 773: IFFALSE 978
// begin if IsInUnit ( i ) = 0 then
 775: LD_VAR 0 5
 779: PPUSH
 780: CALL_OW 310
 784: PUSH
 785: LD_INT 0
 787: EQUAL
 788: IFFALSE 976
// begin uc_side = 1 ;
 790: LD_ADDR_OWVAR 20
 794: PUSH
 795: LD_INT 1
 797: ST_TO_ADDR
// uc_nation = 1 ;
 798: LD_ADDR_OWVAR 21
 802: PUSH
 803: LD_INT 1
 805: ST_TO_ADDR
// hc_gallery =  ;
 806: LD_ADDR_OWVAR 33
 810: PUSH
 811: LD_STRING 
 813: ST_TO_ADDR
// hc_name =  ;
 814: LD_ADDR_OWVAR 26
 818: PUSH
 819: LD_STRING 
 821: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 822: LD_ADDR_OWVAR 29
 826: PUSH
 827: LD_INT 9
 829: PPUSH
 830: LD_INT 11
 832: PPUSH
 833: CALL_OW 12
 837: PUSH
 838: LD_INT 10
 840: PPUSH
 841: LD_INT 12
 843: PPUSH
 844: CALL_OW 12
 848: PUSH
 849: EMPTY
 850: LIST
 851: LIST
 852: ST_TO_ADDR
// hc_skills = [ 5 - Rand ( 0 , 2 ) , Rand ( 1 , 3 ) , Rand ( 1 , 2 ) , Rand ( 1 , 2 ) ] ;
 853: LD_ADDR_OWVAR 31
 857: PUSH
 858: LD_INT 5
 860: PUSH
 861: LD_INT 0
 863: PPUSH
 864: LD_INT 2
 866: PPUSH
 867: CALL_OW 12
 871: MINUS
 872: PUSH
 873: LD_INT 1
 875: PPUSH
 876: LD_INT 3
 878: PPUSH
 879: CALL_OW 12
 883: PUSH
 884: LD_INT 1
 886: PPUSH
 887: LD_INT 2
 889: PPUSH
 890: CALL_OW 12
 894: PUSH
 895: LD_INT 1
 897: PPUSH
 898: LD_INT 2
 900: PPUSH
 901: CALL_OW 12
 905: PUSH
 906: EMPTY
 907: LIST
 908: LIST
 909: LIST
 910: LIST
 911: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 912: LD_ADDR_OWVAR 27
 916: PUSH
 917: LD_INT 1
 919: PPUSH
 920: LD_INT 2
 922: PPUSH
 923: CALL_OW 12
 927: ST_TO_ADDR
// hc_class = 1 ;
 928: LD_ADDR_OWVAR 28
 932: PUSH
 933: LD_INT 1
 935: ST_TO_ADDR
// un := CreateHuman ;
 936: LD_ADDR_VAR 0 6
 940: PUSH
 941: CALL_OW 44
 945: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 946: LD_VAR 0 6
 950: PPUSH
 951: LD_VAR 0 5
 955: PPUSH
 956: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
 960: LD_ADDR_EXP 1
 964: PUSH
 965: LD_EXP 1
 969: PUSH
 970: LD_VAR 0 6
 974: ADD
 975: ST_TO_ADDR
// end ; end ;
 976: GO 772
 978: POP
 979: POP
// for i in depotRU1 do
 980: LD_ADDR_VAR 0 5
 984: PUSH
 985: LD_INT 194
 987: PUSH
 988: FOR_IN
 989: IFFALSE 1210
// begin l = 0 ;
 991: LD_ADDR_VAR 0 7
 995: PUSH
 996: LD_INT 0
 998: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
 999: LD_VAR 0 5
1003: PPUSH
1004: CALL_OW 310
1008: PUSH
1009: LD_INT 0
1011: EQUAL
1012: IFFALSE 1208
// begin repeat begin uc_side = 3 ;
1014: LD_ADDR_OWVAR 20
1018: PUSH
1019: LD_INT 3
1021: ST_TO_ADDR
// uc_nation = 3 ;
1022: LD_ADDR_OWVAR 21
1026: PUSH
1027: LD_INT 3
1029: ST_TO_ADDR
// hc_gallery =  ;
1030: LD_ADDR_OWVAR 33
1034: PUSH
1035: LD_STRING 
1037: ST_TO_ADDR
// hc_name =  ;
1038: LD_ADDR_OWVAR 26
1042: PUSH
1043: LD_STRING 
1045: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1046: LD_ADDR_OWVAR 29
1050: PUSH
1051: LD_INT 9
1053: PPUSH
1054: LD_INT 11
1056: PPUSH
1057: CALL_OW 12
1061: PUSH
1062: LD_INT 10
1064: PPUSH
1065: LD_INT 12
1067: PPUSH
1068: CALL_OW 12
1072: PUSH
1073: EMPTY
1074: LIST
1075: LIST
1076: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel - Rand ( 0 , 1 ) , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
1077: LD_ADDR_OWVAR 31
1081: PUSH
1082: LD_INT 1
1084: PPUSH
1085: LD_INT 3
1087: PPUSH
1088: CALL_OW 12
1092: PUSH
1093: LD_VAR 0 9
1097: PUSH
1098: LD_INT 0
1100: PPUSH
1101: LD_INT 1
1103: PPUSH
1104: CALL_OW 12
1108: MINUS
1109: PUSH
1110: LD_INT 2
1112: PPUSH
1113: LD_INT 4
1115: PPUSH
1116: CALL_OW 12
1120: PUSH
1121: LD_INT 0
1123: PPUSH
1124: LD_INT 3
1126: PPUSH
1127: CALL_OW 12
1131: PUSH
1132: EMPTY
1133: LIST
1134: LIST
1135: LIST
1136: LIST
1137: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1138: LD_ADDR_OWVAR 27
1142: PUSH
1143: LD_INT 1
1145: PPUSH
1146: LD_INT 2
1148: PPUSH
1149: CALL_OW 12
1153: ST_TO_ADDR
// hc_class = 2 ;
1154: LD_ADDR_OWVAR 28
1158: PUSH
1159: LD_INT 2
1161: ST_TO_ADDR
// un = CreateHuman ;
1162: LD_ADDR_VAR 0 6
1166: PUSH
1167: CALL_OW 44
1171: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU1 ) ;
1172: LD_VAR 0 6
1176: PPUSH
1177: LD_INT 194
1179: PPUSH
1180: CALL_OW 52
// l = l + 1 ;
1184: LD_ADDR_VAR 0 7
1188: PUSH
1189: LD_VAR 0 7
1193: PUSH
1194: LD_INT 1
1196: PLUS
1197: ST_TO_ADDR
// end until l = 3 ;
1198: LD_VAR 0 7
1202: PUSH
1203: LD_INT 3
1205: EQUAL
1206: IFFALSE 1014
// end ; end ;
1208: GO 988
1210: POP
1211: POP
// for i in depotRU2 do
1212: LD_ADDR_VAR 0 5
1216: PUSH
1217: LD_INT 280
1219: PUSH
1220: FOR_IN
1221: IFFALSE 1442
// begin l = 0 ;
1223: LD_ADDR_VAR 0 7
1227: PUSH
1228: LD_INT 0
1230: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1231: LD_VAR 0 5
1235: PPUSH
1236: CALL_OW 310
1240: PUSH
1241: LD_INT 0
1243: EQUAL
1244: IFFALSE 1440
// begin repeat begin uc_side = 6 ;
1246: LD_ADDR_OWVAR 20
1250: PUSH
1251: LD_INT 6
1253: ST_TO_ADDR
// uc_nation = 3 ;
1254: LD_ADDR_OWVAR 21
1258: PUSH
1259: LD_INT 3
1261: ST_TO_ADDR
// hc_gallery =  ;
1262: LD_ADDR_OWVAR 33
1266: PUSH
1267: LD_STRING 
1269: ST_TO_ADDR
// hc_name =  ;
1270: LD_ADDR_OWVAR 26
1274: PUSH
1275: LD_STRING 
1277: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1278: LD_ADDR_OWVAR 29
1282: PUSH
1283: LD_INT 9
1285: PPUSH
1286: LD_INT 11
1288: PPUSH
1289: CALL_OW 12
1293: PUSH
1294: LD_INT 10
1296: PPUSH
1297: LD_INT 12
1299: PPUSH
1300: CALL_OW 12
1304: PUSH
1305: EMPTY
1306: LIST
1307: LIST
1308: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel - Rand ( 0 , 1 ) , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
1309: LD_ADDR_OWVAR 31
1313: PUSH
1314: LD_INT 1
1316: PPUSH
1317: LD_INT 3
1319: PPUSH
1320: CALL_OW 12
1324: PUSH
1325: LD_VAR 0 9
1329: PUSH
1330: LD_INT 0
1332: PPUSH
1333: LD_INT 1
1335: PPUSH
1336: CALL_OW 12
1340: MINUS
1341: PUSH
1342: LD_INT 2
1344: PPUSH
1345: LD_INT 4
1347: PPUSH
1348: CALL_OW 12
1352: PUSH
1353: LD_INT 0
1355: PPUSH
1356: LD_INT 3
1358: PPUSH
1359: CALL_OW 12
1363: PUSH
1364: EMPTY
1365: LIST
1366: LIST
1367: LIST
1368: LIST
1369: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1370: LD_ADDR_OWVAR 27
1374: PUSH
1375: LD_INT 1
1377: PPUSH
1378: LD_INT 2
1380: PPUSH
1381: CALL_OW 12
1385: ST_TO_ADDR
// hc_class = 2 ;
1386: LD_ADDR_OWVAR 28
1390: PUSH
1391: LD_INT 2
1393: ST_TO_ADDR
// un = CreateHuman ;
1394: LD_ADDR_VAR 0 6
1398: PUSH
1399: CALL_OW 44
1403: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU2 ) ;
1404: LD_VAR 0 6
1408: PPUSH
1409: LD_INT 280
1411: PPUSH
1412: CALL_OW 52
// l = l + 1 ;
1416: LD_ADDR_VAR 0 7
1420: PUSH
1421: LD_VAR 0 7
1425: PUSH
1426: LD_INT 1
1428: PLUS
1429: ST_TO_ADDR
// end until l = 3 ;
1430: LD_VAR 0 7
1434: PUSH
1435: LD_INT 3
1437: EQUAL
1438: IFFALSE 1246
// end ; end ;
1440: GO 1220
1442: POP
1443: POP
// for i in depotRU3 do
1444: LD_ADDR_VAR 0 5
1448: PUSH
1449: LD_INT 284
1451: PUSH
1452: FOR_IN
1453: IFFALSE 1674
// begin l = 0 ;
1455: LD_ADDR_VAR 0 7
1459: PUSH
1460: LD_INT 0
1462: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1463: LD_VAR 0 5
1467: PPUSH
1468: CALL_OW 310
1472: PUSH
1473: LD_INT 0
1475: EQUAL
1476: IFFALSE 1672
// begin repeat begin uc_side = 5 ;
1478: LD_ADDR_OWVAR 20
1482: PUSH
1483: LD_INT 5
1485: ST_TO_ADDR
// uc_nation = 3 ;
1486: LD_ADDR_OWVAR 21
1490: PUSH
1491: LD_INT 3
1493: ST_TO_ADDR
// hc_gallery =  ;
1494: LD_ADDR_OWVAR 33
1498: PUSH
1499: LD_STRING 
1501: ST_TO_ADDR
// hc_name =  ;
1502: LD_ADDR_OWVAR 26
1506: PUSH
1507: LD_STRING 
1509: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1510: LD_ADDR_OWVAR 29
1514: PUSH
1515: LD_INT 9
1517: PPUSH
1518: LD_INT 11
1520: PPUSH
1521: CALL_OW 12
1525: PUSH
1526: LD_INT 10
1528: PPUSH
1529: LD_INT 12
1531: PPUSH
1532: CALL_OW 12
1536: PUSH
1537: EMPTY
1538: LIST
1539: LIST
1540: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel - Rand ( 0 , 1 ) , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
1541: LD_ADDR_OWVAR 31
1545: PUSH
1546: LD_INT 1
1548: PPUSH
1549: LD_INT 3
1551: PPUSH
1552: CALL_OW 12
1556: PUSH
1557: LD_VAR 0 9
1561: PUSH
1562: LD_INT 0
1564: PPUSH
1565: LD_INT 1
1567: PPUSH
1568: CALL_OW 12
1572: MINUS
1573: PUSH
1574: LD_INT 2
1576: PPUSH
1577: LD_INT 4
1579: PPUSH
1580: CALL_OW 12
1584: PUSH
1585: LD_INT 0
1587: PPUSH
1588: LD_INT 3
1590: PPUSH
1591: CALL_OW 12
1595: PUSH
1596: EMPTY
1597: LIST
1598: LIST
1599: LIST
1600: LIST
1601: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1602: LD_ADDR_OWVAR 27
1606: PUSH
1607: LD_INT 1
1609: PPUSH
1610: LD_INT 2
1612: PPUSH
1613: CALL_OW 12
1617: ST_TO_ADDR
// hc_class = 2 ;
1618: LD_ADDR_OWVAR 28
1622: PUSH
1623: LD_INT 2
1625: ST_TO_ADDR
// un = CreateHuman ;
1626: LD_ADDR_VAR 0 6
1630: PUSH
1631: CALL_OW 44
1635: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU3 ) ;
1636: LD_VAR 0 6
1640: PPUSH
1641: LD_INT 284
1643: PPUSH
1644: CALL_OW 52
// l = l + 1 ;
1648: LD_ADDR_VAR 0 7
1652: PUSH
1653: LD_VAR 0 7
1657: PUSH
1658: LD_INT 1
1660: PLUS
1661: ST_TO_ADDR
// end until l = 3 ;
1662: LD_VAR 0 7
1666: PUSH
1667: LD_INT 3
1669: EQUAL
1670: IFFALSE 1478
// end ; end ;
1672: GO 1452
1674: POP
1675: POP
// for i in depotAM do
1676: LD_ADDR_VAR 0 5
1680: PUSH
1681: LD_INT 14
1683: PUSH
1684: FOR_IN
1685: IFFALSE 1884
// begin l = 0 ;
1687: LD_ADDR_VAR 0 7
1691: PUSH
1692: LD_INT 0
1694: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1695: LD_VAR 0 5
1699: PPUSH
1700: CALL_OW 310
1704: PUSH
1705: LD_INT 0
1707: EQUAL
1708: IFFALSE 1882
// begin repeat begin uc_side = 1 ;
1710: LD_ADDR_OWVAR 20
1714: PUSH
1715: LD_INT 1
1717: ST_TO_ADDR
// uc_nation = 1 ;
1718: LD_ADDR_OWVAR 21
1722: PUSH
1723: LD_INT 1
1725: ST_TO_ADDR
// hc_gallery =  ;
1726: LD_ADDR_OWVAR 33
1730: PUSH
1731: LD_STRING 
1733: ST_TO_ADDR
// hc_name =  ;
1734: LD_ADDR_OWVAR 26
1738: PUSH
1739: LD_STRING 
1741: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1742: LD_ADDR_OWVAR 29
1746: PUSH
1747: LD_INT 9
1749: PPUSH
1750: LD_INT 11
1752: PPUSH
1753: CALL_OW 12
1757: PUSH
1758: LD_INT 10
1760: PPUSH
1761: LD_INT 12
1763: PPUSH
1764: CALL_OW 12
1768: PUSH
1769: EMPTY
1770: LIST
1771: LIST
1772: ST_TO_ADDR
// hc_skills = [ 3 , 6 , 2 , 1 ] ;
1773: LD_ADDR_OWVAR 31
1777: PUSH
1778: LD_INT 3
1780: PUSH
1781: LD_INT 6
1783: PUSH
1784: LD_INT 2
1786: PUSH
1787: LD_INT 1
1789: PUSH
1790: EMPTY
1791: LIST
1792: LIST
1793: LIST
1794: LIST
1795: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1796: LD_ADDR_OWVAR 27
1800: PUSH
1801: LD_INT 1
1803: PPUSH
1804: LD_INT 2
1806: PPUSH
1807: CALL_OW 12
1811: ST_TO_ADDR
// hc_class = 2 ;
1812: LD_ADDR_OWVAR 28
1816: PUSH
1817: LD_INT 2
1819: ST_TO_ADDR
// un = CreateHuman ;
1820: LD_ADDR_VAR 0 6
1824: PUSH
1825: CALL_OW 44
1829: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotAM ) ;
1830: LD_VAR 0 6
1834: PPUSH
1835: LD_INT 14
1837: PPUSH
1838: CALL_OW 52
// l = l + 1 ;
1842: LD_ADDR_VAR 0 7
1846: PUSH
1847: LD_VAR 0 7
1851: PUSH
1852: LD_INT 1
1854: PLUS
1855: ST_TO_ADDR
// AmericanPerson = AmericanPerson ^ un ;
1856: LD_ADDR_EXP 1
1860: PUSH
1861: LD_EXP 1
1865: PUSH
1866: LD_VAR 0 6
1870: ADD
1871: ST_TO_ADDR
// end until l = 1 ;
1872: LD_VAR 0 7
1876: PUSH
1877: LD_INT 1
1879: EQUAL
1880: IFFALSE 1710
// end ; end ;
1882: GO 1684
1884: POP
1885: POP
// for i in factoryRU1 do
1886: LD_ADDR_VAR 0 5
1890: PUSH
1891: LD_INT 255
1893: PUSH
1894: FOR_IN
1895: IFFALSE 2104
// begin l = 0 ;
1897: LD_ADDR_VAR 0 7
1901: PUSH
1902: LD_INT 0
1904: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1905: LD_VAR 0 5
1909: PPUSH
1910: CALL_OW 310
1914: PUSH
1915: LD_INT 0
1917: EQUAL
1918: IFFALSE 2102
// begin repeat begin uc_side = 3 ;
1920: LD_ADDR_OWVAR 20
1924: PUSH
1925: LD_INT 3
1927: ST_TO_ADDR
// uc_nation = 3 ;
1928: LD_ADDR_OWVAR 21
1932: PUSH
1933: LD_INT 3
1935: ST_TO_ADDR
// hc_gallery =  ;
1936: LD_ADDR_OWVAR 33
1940: PUSH
1941: LD_STRING 
1943: ST_TO_ADDR
// hc_name =  ;
1944: LD_ADDR_OWVAR 26
1948: PUSH
1949: LD_STRING 
1951: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1952: LD_ADDR_OWVAR 29
1956: PUSH
1957: LD_INT 9
1959: PPUSH
1960: LD_INT 11
1962: PPUSH
1963: CALL_OW 12
1967: PUSH
1968: LD_INT 10
1970: PPUSH
1971: LD_INT 12
1973: PPUSH
1974: CALL_OW 12
1978: PUSH
1979: EMPTY
1980: LIST
1981: LIST
1982: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 4 ) , Rand ( 0 , 4 ) , MechLevel , Rand ( 0 , 4 ) ] ;
1983: LD_ADDR_OWVAR 31
1987: PUSH
1988: LD_INT 1
1990: PPUSH
1991: LD_INT 4
1993: PPUSH
1994: CALL_OW 12
1998: PUSH
1999: LD_INT 0
2001: PPUSH
2002: LD_INT 4
2004: PPUSH
2005: CALL_OW 12
2009: PUSH
2010: LD_VAR 0 10
2014: PUSH
2015: LD_INT 0
2017: PPUSH
2018: LD_INT 4
2020: PPUSH
2021: CALL_OW 12
2025: PUSH
2026: EMPTY
2027: LIST
2028: LIST
2029: LIST
2030: LIST
2031: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2032: LD_ADDR_OWVAR 27
2036: PUSH
2037: LD_INT 1
2039: PPUSH
2040: LD_INT 2
2042: PPUSH
2043: CALL_OW 12
2047: ST_TO_ADDR
// hc_class = 3 ;
2048: LD_ADDR_OWVAR 28
2052: PUSH
2053: LD_INT 3
2055: ST_TO_ADDR
// un = CreateHuman ;
2056: LD_ADDR_VAR 0 6
2060: PUSH
2061: CALL_OW 44
2065: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryRU1 ) ;
2066: LD_VAR 0 6
2070: PPUSH
2071: LD_INT 255
2073: PPUSH
2074: CALL_OW 52
// l = l + 1 ;
2078: LD_ADDR_VAR 0 7
2082: PUSH
2083: LD_VAR 0 7
2087: PUSH
2088: LD_INT 1
2090: PLUS
2091: ST_TO_ADDR
// end until l = 3 ;
2092: LD_VAR 0 7
2096: PUSH
2097: LD_INT 3
2099: EQUAL
2100: IFFALSE 1920
// end ; end ;
2102: GO 1894
2104: POP
2105: POP
// for i in factoryRU2 do
2106: LD_ADDR_VAR 0 5
2110: PUSH
2111: LD_INT 299
2113: PUSH
2114: FOR_IN
2115: IFFALSE 2324
// begin l = 0 ;
2117: LD_ADDR_VAR 0 7
2121: PUSH
2122: LD_INT 0
2124: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2125: LD_VAR 0 5
2129: PPUSH
2130: CALL_OW 310
2134: PUSH
2135: LD_INT 0
2137: EQUAL
2138: IFFALSE 2322
// begin repeat begin uc_side = 6 ;
2140: LD_ADDR_OWVAR 20
2144: PUSH
2145: LD_INT 6
2147: ST_TO_ADDR
// uc_nation = 3 ;
2148: LD_ADDR_OWVAR 21
2152: PUSH
2153: LD_INT 3
2155: ST_TO_ADDR
// hc_gallery =  ;
2156: LD_ADDR_OWVAR 33
2160: PUSH
2161: LD_STRING 
2163: ST_TO_ADDR
// hc_name =  ;
2164: LD_ADDR_OWVAR 26
2168: PUSH
2169: LD_STRING 
2171: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2172: LD_ADDR_OWVAR 29
2176: PUSH
2177: LD_INT 9
2179: PPUSH
2180: LD_INT 11
2182: PPUSH
2183: CALL_OW 12
2187: PUSH
2188: LD_INT 10
2190: PPUSH
2191: LD_INT 12
2193: PPUSH
2194: CALL_OW 12
2198: PUSH
2199: EMPTY
2200: LIST
2201: LIST
2202: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 4 ) , Rand ( 0 , 4 ) , MechLevel , Rand ( 0 , 4 ) ] ;
2203: LD_ADDR_OWVAR 31
2207: PUSH
2208: LD_INT 1
2210: PPUSH
2211: LD_INT 4
2213: PPUSH
2214: CALL_OW 12
2218: PUSH
2219: LD_INT 0
2221: PPUSH
2222: LD_INT 4
2224: PPUSH
2225: CALL_OW 12
2229: PUSH
2230: LD_VAR 0 10
2234: PUSH
2235: LD_INT 0
2237: PPUSH
2238: LD_INT 4
2240: PPUSH
2241: CALL_OW 12
2245: PUSH
2246: EMPTY
2247: LIST
2248: LIST
2249: LIST
2250: LIST
2251: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2252: LD_ADDR_OWVAR 27
2256: PUSH
2257: LD_INT 1
2259: PPUSH
2260: LD_INT 2
2262: PPUSH
2263: CALL_OW 12
2267: ST_TO_ADDR
// hc_class = 3 ;
2268: LD_ADDR_OWVAR 28
2272: PUSH
2273: LD_INT 3
2275: ST_TO_ADDR
// un = CreateHuman ;
2276: LD_ADDR_VAR 0 6
2280: PUSH
2281: CALL_OW 44
2285: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryRU2 ) ;
2286: LD_VAR 0 6
2290: PPUSH
2291: LD_INT 299
2293: PPUSH
2294: CALL_OW 52
// l = l + 1 ;
2298: LD_ADDR_VAR 0 7
2302: PUSH
2303: LD_VAR 0 7
2307: PUSH
2308: LD_INT 1
2310: PLUS
2311: ST_TO_ADDR
// end until l = 3 ;
2312: LD_VAR 0 7
2316: PUSH
2317: LD_INT 3
2319: EQUAL
2320: IFFALSE 2140
// end ; end ;
2322: GO 2114
2324: POP
2325: POP
// for i in factoryAM do
2326: LD_ADDR_VAR 0 5
2330: PUSH
2331: LD_INT 110
2333: PUSH
2334: FOR_IN
2335: IFFALSE 2534
// begin l = 0 ;
2337: LD_ADDR_VAR 0 7
2341: PUSH
2342: LD_INT 0
2344: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2345: LD_VAR 0 5
2349: PPUSH
2350: CALL_OW 310
2354: PUSH
2355: LD_INT 0
2357: EQUAL
2358: IFFALSE 2532
// begin repeat begin uc_side = 1 ;
2360: LD_ADDR_OWVAR 20
2364: PUSH
2365: LD_INT 1
2367: ST_TO_ADDR
// uc_nation = 1 ;
2368: LD_ADDR_OWVAR 21
2372: PUSH
2373: LD_INT 1
2375: ST_TO_ADDR
// hc_gallery =  ;
2376: LD_ADDR_OWVAR 33
2380: PUSH
2381: LD_STRING 
2383: ST_TO_ADDR
// hc_name =  ;
2384: LD_ADDR_OWVAR 26
2388: PUSH
2389: LD_STRING 
2391: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2392: LD_ADDR_OWVAR 29
2396: PUSH
2397: LD_INT 9
2399: PPUSH
2400: LD_INT 11
2402: PPUSH
2403: CALL_OW 12
2407: PUSH
2408: LD_INT 10
2410: PPUSH
2411: LD_INT 12
2413: PPUSH
2414: CALL_OW 12
2418: PUSH
2419: EMPTY
2420: LIST
2421: LIST
2422: ST_TO_ADDR
// hc_skills = [ 1 , 2 , 5 , 3 ] ;
2423: LD_ADDR_OWVAR 31
2427: PUSH
2428: LD_INT 1
2430: PUSH
2431: LD_INT 2
2433: PUSH
2434: LD_INT 5
2436: PUSH
2437: LD_INT 3
2439: PUSH
2440: EMPTY
2441: LIST
2442: LIST
2443: LIST
2444: LIST
2445: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2446: LD_ADDR_OWVAR 27
2450: PUSH
2451: LD_INT 1
2453: PPUSH
2454: LD_INT 2
2456: PPUSH
2457: CALL_OW 12
2461: ST_TO_ADDR
// hc_class = 3 ;
2462: LD_ADDR_OWVAR 28
2466: PUSH
2467: LD_INT 3
2469: ST_TO_ADDR
// un = CreateHuman ;
2470: LD_ADDR_VAR 0 6
2474: PUSH
2475: CALL_OW 44
2479: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryAM ) ;
2480: LD_VAR 0 6
2484: PPUSH
2485: LD_INT 110
2487: PPUSH
2488: CALL_OW 52
// l = l + 1 ;
2492: LD_ADDR_VAR 0 7
2496: PUSH
2497: LD_VAR 0 7
2501: PUSH
2502: LD_INT 1
2504: PLUS
2505: ST_TO_ADDR
// AmericanPerson = AmericanPerson ^ un ;
2506: LD_ADDR_EXP 1
2510: PUSH
2511: LD_EXP 1
2515: PUSH
2516: LD_VAR 0 6
2520: ADD
2521: ST_TO_ADDR
// end until l = 1 ;
2522: LD_VAR 0 7
2526: PUSH
2527: LD_INT 1
2529: EQUAL
2530: IFFALSE 2360
// end ; end ;
2532: GO 2334
2534: POP
2535: POP
// for i in labAM do
2536: LD_ADDR_VAR 0 5
2540: PUSH
2541: LD_INT 150
2543: PUSH
2544: FOR_IN
2545: IFFALSE 2744
// begin l = 0 ;
2547: LD_ADDR_VAR 0 7
2551: PUSH
2552: LD_INT 0
2554: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2555: LD_VAR 0 5
2559: PPUSH
2560: CALL_OW 310
2564: PUSH
2565: LD_INT 0
2567: EQUAL
2568: IFFALSE 2742
// begin repeat begin uc_side = 1 ;
2570: LD_ADDR_OWVAR 20
2574: PUSH
2575: LD_INT 1
2577: ST_TO_ADDR
// uc_nation = 1 ;
2578: LD_ADDR_OWVAR 21
2582: PUSH
2583: LD_INT 1
2585: ST_TO_ADDR
// hc_gallery =  ;
2586: LD_ADDR_OWVAR 33
2590: PUSH
2591: LD_STRING 
2593: ST_TO_ADDR
// hc_name =  ;
2594: LD_ADDR_OWVAR 26
2598: PUSH
2599: LD_STRING 
2601: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2602: LD_ADDR_OWVAR 29
2606: PUSH
2607: LD_INT 9
2609: PPUSH
2610: LD_INT 11
2612: PPUSH
2613: CALL_OW 12
2617: PUSH
2618: LD_INT 10
2620: PPUSH
2621: LD_INT 12
2623: PPUSH
2624: CALL_OW 12
2628: PUSH
2629: EMPTY
2630: LIST
2631: LIST
2632: ST_TO_ADDR
// hc_skills = [ 0 , 2 , 2 , 5 ] ;
2633: LD_ADDR_OWVAR 31
2637: PUSH
2638: LD_INT 0
2640: PUSH
2641: LD_INT 2
2643: PUSH
2644: LD_INT 2
2646: PUSH
2647: LD_INT 5
2649: PUSH
2650: EMPTY
2651: LIST
2652: LIST
2653: LIST
2654: LIST
2655: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2656: LD_ADDR_OWVAR 27
2660: PUSH
2661: LD_INT 1
2663: PPUSH
2664: LD_INT 2
2666: PPUSH
2667: CALL_OW 12
2671: ST_TO_ADDR
// hc_class = 4 ;
2672: LD_ADDR_OWVAR 28
2676: PUSH
2677: LD_INT 4
2679: ST_TO_ADDR
// un = CreateHuman ;
2680: LD_ADDR_VAR 0 6
2684: PUSH
2685: CALL_OW 44
2689: ST_TO_ADDR
// PlaceHumanInUnit ( un , labAM ) ;
2690: LD_VAR 0 6
2694: PPUSH
2695: LD_INT 150
2697: PPUSH
2698: CALL_OW 52
// l = l + 1 ;
2702: LD_ADDR_VAR 0 7
2706: PUSH
2707: LD_VAR 0 7
2711: PUSH
2712: LD_INT 1
2714: PLUS
2715: ST_TO_ADDR
// AmericanPerson = AmericanPerson ^ un ;
2716: LD_ADDR_EXP 1
2720: PUSH
2721: LD_EXP 1
2725: PUSH
2726: LD_VAR 0 6
2730: ADD
2731: ST_TO_ADDR
// end until l = 1 ;
2732: LD_VAR 0 7
2736: PUSH
2737: LD_INT 1
2739: EQUAL
2740: IFFALSE 2570
// end ; end ;
2742: GO 2544
2744: POP
2745: POP
// for i in labRU1 do
2746: LD_ADDR_VAR 0 5
2750: PUSH
2751: LD_INT 446
2753: PUSH
2754: FOR_IN
2755: IFFALSE 2964
// begin l = 0 ;
2757: LD_ADDR_VAR 0 7
2761: PUSH
2762: LD_INT 0
2764: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2765: LD_VAR 0 5
2769: PPUSH
2770: CALL_OW 310
2774: PUSH
2775: LD_INT 0
2777: EQUAL
2778: IFFALSE 2962
// begin repeat begin uc_side = 3 ;
2780: LD_ADDR_OWVAR 20
2784: PUSH
2785: LD_INT 3
2787: ST_TO_ADDR
// uc_nation = 3 ;
2788: LD_ADDR_OWVAR 21
2792: PUSH
2793: LD_INT 3
2795: ST_TO_ADDR
// hc_gallery =  ;
2796: LD_ADDR_OWVAR 33
2800: PUSH
2801: LD_STRING 
2803: ST_TO_ADDR
// hc_name =  ;
2804: LD_ADDR_OWVAR 26
2808: PUSH
2809: LD_STRING 
2811: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2812: LD_ADDR_OWVAR 29
2816: PUSH
2817: LD_INT 9
2819: PPUSH
2820: LD_INT 11
2822: PPUSH
2823: CALL_OW 12
2827: PUSH
2828: LD_INT 10
2830: PPUSH
2831: LD_INT 12
2833: PPUSH
2834: CALL_OW 12
2838: PUSH
2839: EMPTY
2840: LIST
2841: LIST
2842: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 2 ) , Rand ( 0 , 4 ) , Rand ( 1 , 3 ) , DocLevel ] ;
2843: LD_ADDR_OWVAR 31
2847: PUSH
2848: LD_INT 0
2850: PPUSH
2851: LD_INT 2
2853: PPUSH
2854: CALL_OW 12
2858: PUSH
2859: LD_INT 0
2861: PPUSH
2862: LD_INT 4
2864: PPUSH
2865: CALL_OW 12
2869: PUSH
2870: LD_INT 1
2872: PPUSH
2873: LD_INT 3
2875: PPUSH
2876: CALL_OW 12
2880: PUSH
2881: LD_VAR 0 11
2885: PUSH
2886: EMPTY
2887: LIST
2888: LIST
2889: LIST
2890: LIST
2891: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2892: LD_ADDR_OWVAR 27
2896: PUSH
2897: LD_INT 1
2899: PPUSH
2900: LD_INT 2
2902: PPUSH
2903: CALL_OW 12
2907: ST_TO_ADDR
// hc_class = 4 ;
2908: LD_ADDR_OWVAR 28
2912: PUSH
2913: LD_INT 4
2915: ST_TO_ADDR
// un = CreateHuman ;
2916: LD_ADDR_VAR 0 6
2920: PUSH
2921: CALL_OW 44
2925: ST_TO_ADDR
// PlaceHumanInUnit ( un , labRU1 ) ;
2926: LD_VAR 0 6
2930: PPUSH
2931: LD_INT 446
2933: PPUSH
2934: CALL_OW 52
// l = l + 1 ;
2938: LD_ADDR_VAR 0 7
2942: PUSH
2943: LD_VAR 0 7
2947: PUSH
2948: LD_INT 1
2950: PLUS
2951: ST_TO_ADDR
// end until l = 2 ;
2952: LD_VAR 0 7
2956: PUSH
2957: LD_INT 2
2959: EQUAL
2960: IFFALSE 2780
// end ; end ;
2962: GO 2754
2964: POP
2965: POP
// for i in labRU2 do
2966: LD_ADDR_VAR 0 5
2970: PUSH
2971: LD_INT 713
2973: PUSH
2974: FOR_IN
2975: IFFALSE 3184
// begin l = 0 ;
2977: LD_ADDR_VAR 0 7
2981: PUSH
2982: LD_INT 0
2984: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2985: LD_VAR 0 5
2989: PPUSH
2990: CALL_OW 310
2994: PUSH
2995: LD_INT 0
2997: EQUAL
2998: IFFALSE 3182
// begin repeat begin uc_side = 6 ;
3000: LD_ADDR_OWVAR 20
3004: PUSH
3005: LD_INT 6
3007: ST_TO_ADDR
// uc_nation = 3 ;
3008: LD_ADDR_OWVAR 21
3012: PUSH
3013: LD_INT 3
3015: ST_TO_ADDR
// hc_gallery =  ;
3016: LD_ADDR_OWVAR 33
3020: PUSH
3021: LD_STRING 
3023: ST_TO_ADDR
// hc_name =  ;
3024: LD_ADDR_OWVAR 26
3028: PUSH
3029: LD_STRING 
3031: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3032: LD_ADDR_OWVAR 29
3036: PUSH
3037: LD_INT 9
3039: PPUSH
3040: LD_INT 11
3042: PPUSH
3043: CALL_OW 12
3047: PUSH
3048: LD_INT 10
3050: PPUSH
3051: LD_INT 12
3053: PPUSH
3054: CALL_OW 12
3058: PUSH
3059: EMPTY
3060: LIST
3061: LIST
3062: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 2 ) , Rand ( 0 , 4 ) , Rand ( 1 , 3 ) , DocLevel ] ;
3063: LD_ADDR_OWVAR 31
3067: PUSH
3068: LD_INT 0
3070: PPUSH
3071: LD_INT 2
3073: PPUSH
3074: CALL_OW 12
3078: PUSH
3079: LD_INT 0
3081: PPUSH
3082: LD_INT 4
3084: PPUSH
3085: CALL_OW 12
3089: PUSH
3090: LD_INT 1
3092: PPUSH
3093: LD_INT 3
3095: PPUSH
3096: CALL_OW 12
3100: PUSH
3101: LD_VAR 0 11
3105: PUSH
3106: EMPTY
3107: LIST
3108: LIST
3109: LIST
3110: LIST
3111: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3112: LD_ADDR_OWVAR 27
3116: PUSH
3117: LD_INT 1
3119: PPUSH
3120: LD_INT 2
3122: PPUSH
3123: CALL_OW 12
3127: ST_TO_ADDR
// hc_class = 4 ;
3128: LD_ADDR_OWVAR 28
3132: PUSH
3133: LD_INT 4
3135: ST_TO_ADDR
// un = CreateHuman ;
3136: LD_ADDR_VAR 0 6
3140: PUSH
3141: CALL_OW 44
3145: ST_TO_ADDR
// PlaceHumanInUnit ( un , labRU2 ) ;
3146: LD_VAR 0 6
3150: PPUSH
3151: LD_INT 713
3153: PPUSH
3154: CALL_OW 52
// l = l + 1 ;
3158: LD_ADDR_VAR 0 7
3162: PUSH
3163: LD_VAR 0 7
3167: PUSH
3168: LD_INT 1
3170: PLUS
3171: ST_TO_ADDR
// end until l = 1 ;
3172: LD_VAR 0 7
3176: PUSH
3177: LD_INT 1
3179: EQUAL
3180: IFFALSE 3000
// end ; end ;
3182: GO 2974
3184: POP
3185: POP
// for i in armouryAM1 do
3186: LD_ADDR_VAR 0 5
3190: PUSH
3191: LD_INT 182
3193: PUSH
3194: FOR_IN
3195: IFFALSE 3378
// begin l = 0 ;
3197: LD_ADDR_VAR 0 7
3201: PUSH
3202: LD_INT 0
3204: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3205: LD_VAR 0 5
3209: PPUSH
3210: CALL_OW 310
3214: PUSH
3215: LD_INT 0
3217: EQUAL
3218: IFFALSE 3376
// begin repeat begin uc_side = 1 ;
3220: LD_ADDR_OWVAR 20
3224: PUSH
3225: LD_INT 1
3227: ST_TO_ADDR
// uc_nation = 1 ;
3228: LD_ADDR_OWVAR 21
3232: PUSH
3233: LD_INT 1
3235: ST_TO_ADDR
// hc_gallery =  ;
3236: LD_ADDR_OWVAR 33
3240: PUSH
3241: LD_STRING 
3243: ST_TO_ADDR
// hc_name =  ;
3244: LD_ADDR_OWVAR 26
3248: PUSH
3249: LD_STRING 
3251: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3252: LD_ADDR_OWVAR 29
3256: PUSH
3257: LD_INT 9
3259: PPUSH
3260: LD_INT 11
3262: PPUSH
3263: CALL_OW 12
3267: PUSH
3268: LD_INT 10
3270: PPUSH
3271: LD_INT 12
3273: PPUSH
3274: CALL_OW 12
3278: PUSH
3279: EMPTY
3280: LIST
3281: LIST
3282: ST_TO_ADDR
// hc_skills = [ 5 , 2 , 3 , 0 ] ;
3283: LD_ADDR_OWVAR 31
3287: PUSH
3288: LD_INT 5
3290: PUSH
3291: LD_INT 2
3293: PUSH
3294: LD_INT 3
3296: PUSH
3297: LD_INT 0
3299: PUSH
3300: EMPTY
3301: LIST
3302: LIST
3303: LIST
3304: LIST
3305: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3306: LD_ADDR_OWVAR 27
3310: PUSH
3311: LD_INT 1
3313: PPUSH
3314: LD_INT 2
3316: PPUSH
3317: CALL_OW 12
3321: ST_TO_ADDR
// hc_class = 1 ;
3322: LD_ADDR_OWVAR 28
3326: PUSH
3327: LD_INT 1
3329: ST_TO_ADDR
// un = CreateHuman ;
3330: LD_ADDR_VAR 0 6
3334: PUSH
3335: CALL_OW 44
3339: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryAM1 ) ;
3340: LD_VAR 0 6
3344: PPUSH
3345: LD_INT 182
3347: PPUSH
3348: CALL_OW 52
// l = l + 1 ;
3352: LD_ADDR_VAR 0 7
3356: PUSH
3357: LD_VAR 0 7
3361: PUSH
3362: LD_INT 1
3364: PLUS
3365: ST_TO_ADDR
// end until l = 1 ;
3366: LD_VAR 0 7
3370: PUSH
3371: LD_INT 1
3373: EQUAL
3374: IFFALSE 3220
// end ; end ;
3376: GO 3194
3378: POP
3379: POP
// for i in armouryAM2 do
3380: LD_ADDR_VAR 0 5
3384: PUSH
3385: LD_INT 84
3387: PUSH
3388: FOR_IN
3389: IFFALSE 3704
// begin if IsInUnit ( i ) = 0 then
3391: LD_VAR 0 5
3395: PPUSH
3396: CALL_OW 310
3400: PUSH
3401: LD_INT 0
3403: EQUAL
3404: IFFALSE 3702
// begin uc_side = 1 ;
3406: LD_ADDR_OWVAR 20
3410: PUSH
3411: LD_INT 1
3413: ST_TO_ADDR
// uc_nation = 1 ;
3414: LD_ADDR_OWVAR 21
3418: PUSH
3419: LD_INT 1
3421: ST_TO_ADDR
// hc_gallery =  ;
3422: LD_ADDR_OWVAR 33
3426: PUSH
3427: LD_STRING 
3429: ST_TO_ADDR
// hc_name =  ;
3430: LD_ADDR_OWVAR 26
3434: PUSH
3435: LD_STRING 
3437: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3438: LD_ADDR_OWVAR 29
3442: PUSH
3443: LD_INT 9
3445: PPUSH
3446: LD_INT 11
3448: PPUSH
3449: CALL_OW 12
3453: PUSH
3454: LD_INT 10
3456: PPUSH
3457: LD_INT 12
3459: PPUSH
3460: CALL_OW 12
3464: PUSH
3465: EMPTY
3466: LIST
3467: LIST
3468: ST_TO_ADDR
// hc_skills = [ 4 , 2 , 3 , 0 ] ;
3469: LD_ADDR_OWVAR 31
3473: PUSH
3474: LD_INT 4
3476: PUSH
3477: LD_INT 2
3479: PUSH
3480: LD_INT 3
3482: PUSH
3483: LD_INT 0
3485: PUSH
3486: EMPTY
3487: LIST
3488: LIST
3489: LIST
3490: LIST
3491: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3492: LD_ADDR_OWVAR 27
3496: PUSH
3497: LD_INT 1
3499: PPUSH
3500: LD_INT 2
3502: PPUSH
3503: CALL_OW 12
3507: ST_TO_ADDR
// hc_class = 1 ;
3508: LD_ADDR_OWVAR 28
3512: PUSH
3513: LD_INT 1
3515: ST_TO_ADDR
// un = CreateHuman ;
3516: LD_ADDR_VAR 0 6
3520: PUSH
3521: CALL_OW 44
3525: ST_TO_ADDR
// AmericanPerson = AmericanPerson ^ un ;
3526: LD_ADDR_EXP 1
3530: PUSH
3531: LD_EXP 1
3535: PUSH
3536: LD_VAR 0 6
3540: ADD
3541: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryAM2 ) ;
3542: LD_VAR 0 6
3546: PPUSH
3547: LD_INT 84
3549: PPUSH
3550: CALL_OW 52
// uc_side = 1 ;
3554: LD_ADDR_OWVAR 20
3558: PUSH
3559: LD_INT 1
3561: ST_TO_ADDR
// uc_nation = 1 ;
3562: LD_ADDR_OWVAR 21
3566: PUSH
3567: LD_INT 1
3569: ST_TO_ADDR
// hc_gallery =  ;
3570: LD_ADDR_OWVAR 33
3574: PUSH
3575: LD_STRING 
3577: ST_TO_ADDR
// hc_name =  ;
3578: LD_ADDR_OWVAR 26
3582: PUSH
3583: LD_STRING 
3585: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3586: LD_ADDR_OWVAR 29
3590: PUSH
3591: LD_INT 9
3593: PPUSH
3594: LD_INT 11
3596: PPUSH
3597: CALL_OW 12
3601: PUSH
3602: LD_INT 10
3604: PPUSH
3605: LD_INT 12
3607: PPUSH
3608: CALL_OW 12
3612: PUSH
3613: EMPTY
3614: LIST
3615: LIST
3616: ST_TO_ADDR
// hc_skills = [ 5 , 1 , 2 , 1 ] ;
3617: LD_ADDR_OWVAR 31
3621: PUSH
3622: LD_INT 5
3624: PUSH
3625: LD_INT 1
3627: PUSH
3628: LD_INT 2
3630: PUSH
3631: LD_INT 1
3633: PUSH
3634: EMPTY
3635: LIST
3636: LIST
3637: LIST
3638: LIST
3639: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3640: LD_ADDR_OWVAR 27
3644: PUSH
3645: LD_INT 1
3647: PPUSH
3648: LD_INT 2
3650: PPUSH
3651: CALL_OW 12
3655: ST_TO_ADDR
// hc_class = 1 ;
3656: LD_ADDR_OWVAR 28
3660: PUSH
3661: LD_INT 1
3663: ST_TO_ADDR
// un = CreateHuman ;
3664: LD_ADDR_VAR 0 6
3668: PUSH
3669: CALL_OW 44
3673: ST_TO_ADDR
// AmericanPerson = AmericanPerson ^ un ;
3674: LD_ADDR_EXP 1
3678: PUSH
3679: LD_EXP 1
3683: PUSH
3684: LD_VAR 0 6
3688: ADD
3689: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryAM2 ) ;
3690: LD_VAR 0 6
3694: PPUSH
3695: LD_INT 84
3697: PPUSH
3698: CALL_OW 52
// end ; end ;
3702: GO 3388
3704: POP
3705: POP
// for i in armouryRU1 do
3706: LD_ADDR_VAR 0 5
3710: PUSH
3711: LD_INT 209
3713: PUSH
3714: FOR_IN
3715: IFFALSE 3945
// begin l = 0 ;
3717: LD_ADDR_VAR 0 7
3721: PUSH
3722: LD_INT 0
3724: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3725: LD_VAR 0 5
3729: PPUSH
3730: CALL_OW 310
3734: PUSH
3735: LD_INT 0
3737: EQUAL
3738: IFFALSE 3943
// begin repeat begin uc_side = 3 ;
3740: LD_ADDR_OWVAR 20
3744: PUSH
3745: LD_INT 3
3747: ST_TO_ADDR
// uc_nation = 3 ;
3748: LD_ADDR_OWVAR 21
3752: PUSH
3753: LD_INT 3
3755: ST_TO_ADDR
// hc_gallery =  ;
3756: LD_ADDR_OWVAR 33
3760: PUSH
3761: LD_STRING 
3763: ST_TO_ADDR
// hc_name =  ;
3764: LD_ADDR_OWVAR 26
3768: PUSH
3769: LD_STRING 
3771: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3772: LD_ADDR_OWVAR 29
3776: PUSH
3777: LD_INT 9
3779: PPUSH
3780: LD_INT 11
3782: PPUSH
3783: CALL_OW 12
3787: PUSH
3788: LD_INT 10
3790: PPUSH
3791: LD_INT 12
3793: PPUSH
3794: CALL_OW 12
3798: PUSH
3799: EMPTY
3800: LIST
3801: LIST
3802: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 4 ) , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) ] ;
3803: LD_ADDR_OWVAR 31
3807: PUSH
3808: LD_VAR 0 8
3812: PUSH
3813: LD_INT 1
3815: PPUSH
3816: LD_INT 4
3818: PPUSH
3819: CALL_OW 12
3823: PUSH
3824: LD_INT 0
3826: PPUSH
3827: LD_INT 3
3829: PPUSH
3830: CALL_OW 12
3834: PUSH
3835: LD_INT 0
3837: PPUSH
3838: LD_INT 2
3840: PPUSH
3841: CALL_OW 12
3845: PUSH
3846: EMPTY
3847: LIST
3848: LIST
3849: LIST
3850: LIST
3851: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3852: LD_ADDR_OWVAR 27
3856: PUSH
3857: LD_INT 1
3859: PPUSH
3860: LD_INT 2
3862: PPUSH
3863: CALL_OW 12
3867: ST_TO_ADDR
// hc_class = 1 ;
3868: LD_ADDR_OWVAR 28
3872: PUSH
3873: LD_INT 1
3875: ST_TO_ADDR
// un = CreateHuman ;
3876: LD_ADDR_VAR 0 6
3880: PUSH
3881: CALL_OW 44
3885: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU1 ) ;
3886: LD_VAR 0 6
3890: PPUSH
3891: LD_INT 209
3893: PPUSH
3894: CALL_OW 52
// l = l + 1 ;
3898: LD_ADDR_VAR 0 7
3902: PUSH
3903: LD_VAR 0 7
3907: PUSH
3908: LD_INT 1
3910: PLUS
3911: ST_TO_ADDR
// end until l = [ 2 , 3 , 3 ] [ Difficulty ] + 1 ;
3912: LD_VAR 0 7
3916: PUSH
3917: LD_INT 2
3919: PUSH
3920: LD_INT 3
3922: PUSH
3923: LD_INT 3
3925: PUSH
3926: EMPTY
3927: LIST
3928: LIST
3929: LIST
3930: PUSH
3931: LD_OWVAR 67
3935: ARRAY
3936: PUSH
3937: LD_INT 1
3939: PLUS
3940: EQUAL
3941: IFFALSE 3740
// end ; end ;
3943: GO 3714
3945: POP
3946: POP
// for i in armouryRU2 do
3947: LD_ADDR_VAR 0 5
3951: PUSH
3952: LD_INT 856
3954: PUSH
3955: FOR_IN
3956: IFFALSE 4186
// begin l = 0 ;
3958: LD_ADDR_VAR 0 7
3962: PUSH
3963: LD_INT 0
3965: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3966: LD_VAR 0 5
3970: PPUSH
3971: CALL_OW 310
3975: PUSH
3976: LD_INT 0
3978: EQUAL
3979: IFFALSE 4184
// begin repeat begin uc_side = 6 ;
3981: LD_ADDR_OWVAR 20
3985: PUSH
3986: LD_INT 6
3988: ST_TO_ADDR
// uc_nation = 3 ;
3989: LD_ADDR_OWVAR 21
3993: PUSH
3994: LD_INT 3
3996: ST_TO_ADDR
// hc_gallery =  ;
3997: LD_ADDR_OWVAR 33
4001: PUSH
4002: LD_STRING 
4004: ST_TO_ADDR
// hc_name =  ;
4005: LD_ADDR_OWVAR 26
4009: PUSH
4010: LD_STRING 
4012: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4013: LD_ADDR_OWVAR 29
4017: PUSH
4018: LD_INT 9
4020: PPUSH
4021: LD_INT 11
4023: PPUSH
4024: CALL_OW 12
4028: PUSH
4029: LD_INT 10
4031: PPUSH
4032: LD_INT 12
4034: PPUSH
4035: CALL_OW 12
4039: PUSH
4040: EMPTY
4041: LIST
4042: LIST
4043: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 4 ) , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) ] ;
4044: LD_ADDR_OWVAR 31
4048: PUSH
4049: LD_VAR 0 8
4053: PUSH
4054: LD_INT 1
4056: PPUSH
4057: LD_INT 4
4059: PPUSH
4060: CALL_OW 12
4064: PUSH
4065: LD_INT 0
4067: PPUSH
4068: LD_INT 3
4070: PPUSH
4071: CALL_OW 12
4075: PUSH
4076: LD_INT 0
4078: PPUSH
4079: LD_INT 2
4081: PPUSH
4082: CALL_OW 12
4086: PUSH
4087: EMPTY
4088: LIST
4089: LIST
4090: LIST
4091: LIST
4092: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4093: LD_ADDR_OWVAR 27
4097: PUSH
4098: LD_INT 1
4100: PPUSH
4101: LD_INT 2
4103: PPUSH
4104: CALL_OW 12
4108: ST_TO_ADDR
// hc_class = 1 ;
4109: LD_ADDR_OWVAR 28
4113: PUSH
4114: LD_INT 1
4116: ST_TO_ADDR
// un = CreateHuman ;
4117: LD_ADDR_VAR 0 6
4121: PUSH
4122: CALL_OW 44
4126: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU2 ) ;
4127: LD_VAR 0 6
4131: PPUSH
4132: LD_INT 856
4134: PPUSH
4135: CALL_OW 52
// l = l + 1 ;
4139: LD_ADDR_VAR 0 7
4143: PUSH
4144: LD_VAR 0 7
4148: PUSH
4149: LD_INT 1
4151: PLUS
4152: ST_TO_ADDR
// end until l = [ 2 , 3 , 3 ] [ Difficulty ] + 1 ;
4153: LD_VAR 0 7
4157: PUSH
4158: LD_INT 2
4160: PUSH
4161: LD_INT 3
4163: PUSH
4164: LD_INT 3
4166: PUSH
4167: EMPTY
4168: LIST
4169: LIST
4170: LIST
4171: PUSH
4172: LD_OWVAR 67
4176: ARRAY
4177: PUSH
4178: LD_INT 1
4180: PLUS
4181: EQUAL
4182: IFFALSE 3981
// end ; end ;
4184: GO 3955
4186: POP
4187: POP
// for i in armouryRU3 do
4188: LD_ADDR_VAR 0 5
4192: PUSH
4193: LD_INT 289
4195: PUSH
4196: FOR_IN
4197: IFFALSE 4423
// begin l = 0 ;
4199: LD_ADDR_VAR 0 7
4203: PUSH
4204: LD_INT 0
4206: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
4207: LD_VAR 0 5
4211: PPUSH
4212: CALL_OW 310
4216: PUSH
4217: LD_INT 0
4219: EQUAL
4220: IFFALSE 4421
// begin repeat begin uc_side = 5 ;
4222: LD_ADDR_OWVAR 20
4226: PUSH
4227: LD_INT 5
4229: ST_TO_ADDR
// uc_nation = 3 ;
4230: LD_ADDR_OWVAR 21
4234: PUSH
4235: LD_INT 3
4237: ST_TO_ADDR
// hc_gallery =  ;
4238: LD_ADDR_OWVAR 33
4242: PUSH
4243: LD_STRING 
4245: ST_TO_ADDR
// hc_name =  ;
4246: LD_ADDR_OWVAR 26
4250: PUSH
4251: LD_STRING 
4253: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4254: LD_ADDR_OWVAR 29
4258: PUSH
4259: LD_INT 9
4261: PPUSH
4262: LD_INT 11
4264: PPUSH
4265: CALL_OW 12
4269: PUSH
4270: LD_INT 10
4272: PPUSH
4273: LD_INT 12
4275: PPUSH
4276: CALL_OW 12
4280: PUSH
4281: EMPTY
4282: LIST
4283: LIST
4284: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 4 ) , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) ] ;
4285: LD_ADDR_OWVAR 31
4289: PUSH
4290: LD_VAR 0 8
4294: PUSH
4295: LD_INT 1
4297: PPUSH
4298: LD_INT 4
4300: PPUSH
4301: CALL_OW 12
4305: PUSH
4306: LD_INT 0
4308: PPUSH
4309: LD_INT 3
4311: PPUSH
4312: CALL_OW 12
4316: PUSH
4317: LD_INT 0
4319: PPUSH
4320: LD_INT 2
4322: PPUSH
4323: CALL_OW 12
4327: PUSH
4328: EMPTY
4329: LIST
4330: LIST
4331: LIST
4332: LIST
4333: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4334: LD_ADDR_OWVAR 27
4338: PUSH
4339: LD_INT 1
4341: PPUSH
4342: LD_INT 2
4344: PPUSH
4345: CALL_OW 12
4349: ST_TO_ADDR
// hc_class = 1 ;
4350: LD_ADDR_OWVAR 28
4354: PUSH
4355: LD_INT 1
4357: ST_TO_ADDR
// un = CreateHuman ;
4358: LD_ADDR_VAR 0 6
4362: PUSH
4363: CALL_OW 44
4367: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU3 ) ;
4368: LD_VAR 0 6
4372: PPUSH
4373: LD_INT 289
4375: PPUSH
4376: CALL_OW 52
// l = l + 1 ;
4380: LD_ADDR_VAR 0 7
4384: PUSH
4385: LD_VAR 0 7
4389: PUSH
4390: LD_INT 1
4392: PLUS
4393: ST_TO_ADDR
// end until l = [ 2 , 3 , 3 ] [ Difficulty ] ;
4394: LD_VAR 0 7
4398: PUSH
4399: LD_INT 2
4401: PUSH
4402: LD_INT 3
4404: PUSH
4405: LD_INT 3
4407: PUSH
4408: EMPTY
4409: LIST
4410: LIST
4411: LIST
4412: PUSH
4413: LD_OWVAR 67
4417: ARRAY
4418: EQUAL
4419: IFFALSE 4222
// end ; end ;
4421: GO 4196
4423: POP
4424: POP
// for i in armouryRU4 do
4425: LD_ADDR_VAR 0 5
4429: PUSH
4430: LD_INT 295
4432: PUSH
4433: FOR_IN
4434: IFFALSE 4660
// begin l = 0 ;
4436: LD_ADDR_VAR 0 7
4440: PUSH
4441: LD_INT 0
4443: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
4444: LD_VAR 0 5
4448: PPUSH
4449: CALL_OW 310
4453: PUSH
4454: LD_INT 0
4456: EQUAL
4457: IFFALSE 4658
// begin repeat begin uc_side = 5 ;
4459: LD_ADDR_OWVAR 20
4463: PUSH
4464: LD_INT 5
4466: ST_TO_ADDR
// uc_nation = 3 ;
4467: LD_ADDR_OWVAR 21
4471: PUSH
4472: LD_INT 3
4474: ST_TO_ADDR
// hc_gallery =  ;
4475: LD_ADDR_OWVAR 33
4479: PUSH
4480: LD_STRING 
4482: ST_TO_ADDR
// hc_name =  ;
4483: LD_ADDR_OWVAR 26
4487: PUSH
4488: LD_STRING 
4490: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4491: LD_ADDR_OWVAR 29
4495: PUSH
4496: LD_INT 9
4498: PPUSH
4499: LD_INT 11
4501: PPUSH
4502: CALL_OW 12
4506: PUSH
4507: LD_INT 10
4509: PPUSH
4510: LD_INT 12
4512: PPUSH
4513: CALL_OW 12
4517: PUSH
4518: EMPTY
4519: LIST
4520: LIST
4521: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 4 ) , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) ] ;
4522: LD_ADDR_OWVAR 31
4526: PUSH
4527: LD_VAR 0 8
4531: PUSH
4532: LD_INT 1
4534: PPUSH
4535: LD_INT 4
4537: PPUSH
4538: CALL_OW 12
4542: PUSH
4543: LD_INT 0
4545: PPUSH
4546: LD_INT 3
4548: PPUSH
4549: CALL_OW 12
4553: PUSH
4554: LD_INT 0
4556: PPUSH
4557: LD_INT 2
4559: PPUSH
4560: CALL_OW 12
4564: PUSH
4565: EMPTY
4566: LIST
4567: LIST
4568: LIST
4569: LIST
4570: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4571: LD_ADDR_OWVAR 27
4575: PUSH
4576: LD_INT 1
4578: PPUSH
4579: LD_INT 2
4581: PPUSH
4582: CALL_OW 12
4586: ST_TO_ADDR
// hc_class = 1 ;
4587: LD_ADDR_OWVAR 28
4591: PUSH
4592: LD_INT 1
4594: ST_TO_ADDR
// un = CreateHuman ;
4595: LD_ADDR_VAR 0 6
4599: PUSH
4600: CALL_OW 44
4604: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU4 ) ;
4605: LD_VAR 0 6
4609: PPUSH
4610: LD_INT 295
4612: PPUSH
4613: CALL_OW 52
// l = l + 1 ;
4617: LD_ADDR_VAR 0 7
4621: PUSH
4622: LD_VAR 0 7
4626: PUSH
4627: LD_INT 1
4629: PLUS
4630: ST_TO_ADDR
// end until l = [ 2 , 3 , 3 ] [ Difficulty ] ;
4631: LD_VAR 0 7
4635: PUSH
4636: LD_INT 2
4638: PUSH
4639: LD_INT 3
4641: PUSH
4642: LD_INT 3
4644: PUSH
4645: EMPTY
4646: LIST
4647: LIST
4648: LIST
4649: PUSH
4650: LD_OWVAR 67
4654: ARRAY
4655: EQUAL
4656: IFFALSE 4459
// end ; end ;
4658: GO 4433
4660: POP
4661: POP
// for i in armouryRU5 do
4662: LD_ADDR_VAR 0 5
4666: PUSH
4667: LD_INT 276
4669: PUSH
4670: FOR_IN
4671: IFFALSE 4897
// begin l = 0 ;
4673: LD_ADDR_VAR 0 7
4677: PUSH
4678: LD_INT 0
4680: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
4681: LD_VAR 0 5
4685: PPUSH
4686: CALL_OW 310
4690: PUSH
4691: LD_INT 0
4693: EQUAL
4694: IFFALSE 4895
// begin repeat begin uc_side = 5 ;
4696: LD_ADDR_OWVAR 20
4700: PUSH
4701: LD_INT 5
4703: ST_TO_ADDR
// uc_nation = 3 ;
4704: LD_ADDR_OWVAR 21
4708: PUSH
4709: LD_INT 3
4711: ST_TO_ADDR
// hc_gallery =  ;
4712: LD_ADDR_OWVAR 33
4716: PUSH
4717: LD_STRING 
4719: ST_TO_ADDR
// hc_name =  ;
4720: LD_ADDR_OWVAR 26
4724: PUSH
4725: LD_STRING 
4727: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4728: LD_ADDR_OWVAR 29
4732: PUSH
4733: LD_INT 9
4735: PPUSH
4736: LD_INT 11
4738: PPUSH
4739: CALL_OW 12
4743: PUSH
4744: LD_INT 10
4746: PPUSH
4747: LD_INT 12
4749: PPUSH
4750: CALL_OW 12
4754: PUSH
4755: EMPTY
4756: LIST
4757: LIST
4758: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 4 ) , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) ] ;
4759: LD_ADDR_OWVAR 31
4763: PUSH
4764: LD_VAR 0 8
4768: PUSH
4769: LD_INT 1
4771: PPUSH
4772: LD_INT 4
4774: PPUSH
4775: CALL_OW 12
4779: PUSH
4780: LD_INT 0
4782: PPUSH
4783: LD_INT 3
4785: PPUSH
4786: CALL_OW 12
4790: PUSH
4791: LD_INT 0
4793: PPUSH
4794: LD_INT 2
4796: PPUSH
4797: CALL_OW 12
4801: PUSH
4802: EMPTY
4803: LIST
4804: LIST
4805: LIST
4806: LIST
4807: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4808: LD_ADDR_OWVAR 27
4812: PUSH
4813: LD_INT 1
4815: PPUSH
4816: LD_INT 2
4818: PPUSH
4819: CALL_OW 12
4823: ST_TO_ADDR
// hc_class = 1 ;
4824: LD_ADDR_OWVAR 28
4828: PUSH
4829: LD_INT 1
4831: ST_TO_ADDR
// un = CreateHuman ;
4832: LD_ADDR_VAR 0 6
4836: PUSH
4837: CALL_OW 44
4841: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU5 ) ;
4842: LD_VAR 0 6
4846: PPUSH
4847: LD_INT 276
4849: PPUSH
4850: CALL_OW 52
// l = l + 1 ;
4854: LD_ADDR_VAR 0 7
4858: PUSH
4859: LD_VAR 0 7
4863: PUSH
4864: LD_INT 1
4866: PLUS
4867: ST_TO_ADDR
// end until l = [ 2 , 3 , 3 ] [ Difficulty ] ;
4868: LD_VAR 0 7
4872: PUSH
4873: LD_INT 2
4875: PUSH
4876: LD_INT 3
4878: PUSH
4879: LD_INT 3
4881: PUSH
4882: EMPTY
4883: LIST
4884: LIST
4885: LIST
4886: PUSH
4887: LD_OWVAR 67
4891: ARRAY
4892: EQUAL
4893: IFFALSE 4696
// end ; end ;
4895: GO 4670
4897: POP
4898: POP
// end ; end_of_file
4899: LD_VAR 0 1
4903: RET
// export medal1 , x , Center , EndGame ; starting begin Center = 1 ;
4904: LD_ADDR_EXP 4
4908: PUSH
4909: LD_INT 1
4911: ST_TO_ADDR
// Ucieczka = false ;
4912: LD_ADDR_EXP 18
4916: PUSH
4917: LD_INT 0
4919: ST_TO_ADDR
// Escapers = 0 ;
4920: LD_ADDR_EXP 17
4924: PUSH
4925: LD_INT 0
4927: ST_TO_ADDR
// x = true ;
4928: LD_ADDR_EXP 3
4932: PUSH
4933: LD_INT 1
4935: ST_TO_ADDR
// EndGame = false ;
4936: LD_ADDR_EXP 5
4940: PUSH
4941: LD_INT 0
4943: ST_TO_ADDR
// InGameOn ;
4944: CALL_OW 8
// SetBName ( depotAM , baseterminal ) ;
4948: LD_INT 14
4950: PPUSH
4951: LD_STRING baseterminal
4953: PPUSH
4954: CALL_OW 500
// PrepareRussians ;
4958: CALL 0 0 0
// HEROES ;
4962: CALL 9918 0 0
// ComMoveToArea ( f2 , Mjrexit ) ;
4966: LD_INT 744
4968: PPUSH
4969: LD_INT 10
4971: PPUSH
4972: CALL_OW 113
// ComMoveToArea ( f1 , Nefaremexit ) ;
4976: LD_INT 727
4978: PPUSH
4979: LD_INT 11
4981: PPUSH
4982: CALL_OW 113
// wait ( 0 0$01 ) ;
4986: LD_INT 35
4988: PPUSH
4989: CALL_OW 67
// AddComExitVehicle ( Mjr ) ;
4993: LD_EXP 9
4997: PPUSH
4998: CALL_OW 181
// AddComExitVehicle ( Nefarem ) ;
5002: LD_EXP 10
5006: PPUSH
5007: CALL_OW 181
// wait ( 0 0$01 ) ;
5011: LD_INT 35
5013: PPUSH
5014: CALL_OW 67
// AddComMoveXY ( Mjr , 48 , 75 ) ;
5018: LD_EXP 9
5022: PPUSH
5023: LD_INT 48
5025: PPUSH
5026: LD_INT 75
5028: PPUSH
5029: CALL_OW 171
// AddComMoveXY ( Nefarem , 43 , 72 ) ;
5033: LD_EXP 10
5037: PPUSH
5038: LD_INT 43
5040: PPUSH
5041: LD_INT 72
5043: PPUSH
5044: CALL_OW 171
// Say ( Mjr , A1 ) ;
5048: LD_EXP 9
5052: PPUSH
5053: LD_STRING A1
5055: PPUSH
5056: CALL_OW 88
// disable ( 60 ) ;
5060: LD_INT 60
5062: DISABLE_MARKED
// disable ( 30 ) ;
5063: LD_INT 30
5065: DISABLE_MARKED
// disable ( 31 ) ;
5066: LD_INT 31
5068: DISABLE_MARKED
// disable ( 32 ) ;
5069: LD_INT 32
5071: DISABLE_MARKED
// disable ( 61 ) ;
5072: LD_INT 61
5074: DISABLE_MARKED
// disable ( 62 ) ;
5075: LD_INT 62
5077: DISABLE_MARKED
// disable ( 65 ) ;
5078: LD_INT 65
5080: DISABLE_MARKED
// disable ( 100 ) ;
5081: LD_INT 100
5083: DISABLE_MARKED
// disable ( 110 ) ;
5084: LD_INT 110
5086: DISABLE_MARKED
// disable ( 120 ) ;
5087: LD_INT 120
5089: DISABLE_MARKED
// disable ( 130 ) ;
5090: LD_INT 130
5092: DISABLE_MARKED
// disable ( 140 ) ;
5093: LD_INT 140
5095: DISABLE_MARKED
// disable ( 150 ) ;
5096: LD_INT 150
5098: DISABLE_MARKED
// disable ( 160 ) ;
5099: LD_INT 160
5101: DISABLE_MARKED
// disable ( 999 ) ;
5102: LD_INT 999
5104: DISABLE_MARKED
// end ;
5105: END
// every 0 0$01 trigger IsInArea ( Mjr , shit ) do
5106: LD_EXP 9
5110: PPUSH
5111: LD_INT 12
5113: PPUSH
5114: CALL_OW 308
5118: IFFALSE 5387
5120: GO 5122
5122: DISABLE
// begin ComExitVehicle ( Mjr ) ;
5123: LD_EXP 9
5127: PPUSH
5128: CALL_OW 121
// ComExitVehicle ( Nefarem ) ;
5132: LD_EXP 10
5136: PPUSH
5137: CALL_OW 121
// wait ( 0 0$01 ) ;
5141: LD_INT 35
5143: PPUSH
5144: CALL_OW 67
// AddComMoveXY ( Mjr , 48 , 75 ) ;
5148: LD_EXP 9
5152: PPUSH
5153: LD_INT 48
5155: PPUSH
5156: LD_INT 75
5158: PPUSH
5159: CALL_OW 171
// AddComMoveXY ( Nefarem , 43 , 72 ) ;
5163: LD_EXP 10
5167: PPUSH
5168: LD_INT 43
5170: PPUSH
5171: LD_INT 72
5173: PPUSH
5174: CALL_OW 171
// Say ( Mech1 , A2 ) ;
5178: LD_EXP 14
5182: PPUSH
5183: LD_STRING A2
5185: PPUSH
5186: CALL_OW 88
// Say ( Mjr , A3 ) ;
5190: LD_EXP 9
5194: PPUSH
5195: LD_STRING A3
5197: PPUSH
5198: CALL_OW 88
// Say ( Mech1 , A4 ) ;
5202: LD_EXP 14
5206: PPUSH
5207: LD_STRING A4
5209: PPUSH
5210: CALL_OW 88
// Say ( Mjr , A5 ) ;
5214: LD_EXP 9
5218: PPUSH
5219: LD_STRING A5
5221: PPUSH
5222: CALL_OW 88
// Say ( DowAM , A6 ) ;
5226: LD_EXP 15
5230: PPUSH
5231: LD_STRING A6
5233: PPUSH
5234: CALL_OW 88
// Say ( Mjr , A7 ) ;
5238: LD_EXP 9
5242: PPUSH
5243: LD_STRING A7
5245: PPUSH
5246: CALL_OW 88
// Say ( DowAM , A8 ) ;
5250: LD_EXP 15
5254: PPUSH
5255: LD_STRING A8
5257: PPUSH
5258: CALL_OW 88
// Say ( Mjr , A9 ) ;
5262: LD_EXP 9
5266: PPUSH
5267: LD_STRING A9
5269: PPUSH
5270: CALL_OW 88
// Say ( DowAM , A10 ) ;
5274: LD_EXP 15
5278: PPUSH
5279: LD_STRING A10
5281: PPUSH
5282: CALL_OW 88
// Say ( Mjr , A11 ) ;
5286: LD_EXP 9
5290: PPUSH
5291: LD_STRING A11
5293: PPUSH
5294: CALL_OW 88
// ComEnterUnit ( Mjr , armouryAM1 ) ;
5298: LD_EXP 9
5302: PPUSH
5303: LD_INT 182
5305: PPUSH
5306: CALL_OW 120
// Say ( DowAM , A12 ) ;
5310: LD_EXP 15
5314: PPUSH
5315: LD_STRING A12
5317: PPUSH
5318: CALL_OW 88
// Say ( Nefarem , A13 ) ;
5322: LD_EXP 10
5326: PPUSH
5327: LD_STRING A13
5329: PPUSH
5330: CALL_OW 88
// Say ( DowAM , A14 ) ;
5334: LD_EXP 15
5338: PPUSH
5339: LD_STRING A14
5341: PPUSH
5342: CALL_OW 88
// Say ( Nefarem , A15 ) ;
5346: LD_EXP 10
5350: PPUSH
5351: LD_STRING A15
5353: PPUSH
5354: CALL_OW 88
// InGameOff ;
5358: CALL_OW 9
// Center = 0 ;
5362: LD_ADDR_EXP 4
5366: PUSH
5367: LD_INT 0
5369: ST_TO_ADDR
// ChangeMissionObjectives ( M1 ) ;
5370: LD_STRING M1
5372: PPUSH
5373: CALL_OW 337
// SaveForQuickRestart ;
5377: CALL_OW 22
// enable ( 100 ) ;
5381: LD_INT 100
5383: ENABLE_MARKED
// enable ( 110 ) ;
5384: LD_INT 110
5386: ENABLE_MARKED
// end ;
5387: END
// every 1 1$20 marked 110 do var vehicles , i ;
5388: GO 5390
5390: DISABLE
5391: LD_INT 0
5393: PPUSH
5394: PPUSH
// begin vehicles := FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_manual ] ] ) ;
5395: LD_ADDR_VAR 0 1
5399: PUSH
5400: LD_INT 22
5402: PUSH
5403: LD_INT 6
5405: PUSH
5406: EMPTY
5407: LIST
5408: LIST
5409: PUSH
5410: LD_INT 21
5412: PUSH
5413: LD_INT 2
5415: PUSH
5416: EMPTY
5417: LIST
5418: LIST
5419: PUSH
5420: LD_INT 33
5422: PUSH
5423: LD_INT 1
5425: PUSH
5426: EMPTY
5427: LIST
5428: LIST
5429: PUSH
5430: EMPTY
5431: LIST
5432: LIST
5433: LIST
5434: PPUSH
5435: CALL_OW 69
5439: ST_TO_ADDR
// ComMoveXY ( vehicles , 80 , 144 ) ;
5440: LD_VAR 0 1
5444: PPUSH
5445: LD_INT 80
5447: PPUSH
5448: LD_INT 144
5450: PPUSH
5451: CALL_OW 111
// if Difficulty = 1 then
5455: LD_OWVAR 67
5459: PUSH
5460: LD_INT 1
5462: EQUAL
5463: IFFALSE 5474
// begin wait ( 0 0$40 ) ;
5465: LD_INT 1400
5467: PPUSH
5468: CALL_OW 67
// end else
5472: GO 5510
// if Difficulty = 2 then
5474: LD_OWVAR 67
5478: PUSH
5479: LD_INT 2
5481: EQUAL
5482: IFFALSE 5493
// begin wait ( 0 0$50 ) ;
5484: LD_INT 1750
5486: PPUSH
5487: CALL_OW 67
// end else
5491: GO 5510
// if Difficulty = 3 then
5493: LD_OWVAR 67
5497: PUSH
5498: LD_INT 3
5500: EQUAL
5501: IFFALSE 5510
// begin wait ( 1 1$10 ) ;
5503: LD_INT 2450
5505: PPUSH
5506: CALL_OW 67
// end ; wsparcie ;
5510: CALL 10808 0 0
// DialogueOn ;
5514: CALL_OW 6
// Say ( Nefarem , B1 ) ;
5518: LD_EXP 10
5522: PPUSH
5523: LD_STRING B1
5525: PPUSH
5526: CALL_OW 88
// SayRadio ( dowRU1 , B2 ) ;
5530: LD_EXP 11
5534: PPUSH
5535: LD_STRING B2
5537: PPUSH
5538: CALL_OW 94
// Say ( Nefarem , B3 ) ;
5542: LD_EXP 10
5546: PPUSH
5547: LD_STRING B3
5549: PPUSH
5550: CALL_OW 88
// Say ( mech1 , B4 ) ;
5554: LD_EXP 14
5558: PPUSH
5559: LD_STRING B4
5561: PPUSH
5562: CALL_OW 88
// Say ( Nefarem , B5 ) ;
5566: LD_EXP 10
5570: PPUSH
5571: LD_STRING B5
5573: PPUSH
5574: CALL_OW 88
// Say ( mech1 , B6 ) ;
5578: LD_EXP 14
5582: PPUSH
5583: LD_STRING B6
5585: PPUSH
5586: CALL_OW 88
// DialogueOff ;
5590: CALL_OW 7
// case query ( czestotliwosc ) of 1 :
5594: LD_STRING czestotliwosc
5596: PPUSH
5597: CALL_OW 97
5601: PUSH
5602: LD_INT 1
5604: DOUBLE
5605: EQUAL
5606: IFTRUE 5610
5608: GO 5613
5610: POP
// begin end ; end ;
5611: GO 5614
5613: POP
// ChangeMissionObjectives ( M2 ) ;
5614: LD_STRING M2
5616: PPUSH
5617: CALL_OW 337
// enable ( 120 ) ;
5621: LD_INT 120
5623: ENABLE_MARKED
// wait ( 0 0$15 ) ;
5624: LD_INT 525
5626: PPUSH
5627: CALL_OW 67
// enable ( 65 ) ;
5631: LD_INT 65
5633: ENABLE_MARKED
// end ;
5634: PPOPN 2
5636: END
// every 0 0$01 trigger GetTech ( tech_Opto1 , 4 ) = state_researched do
5637: LD_INT 60
5639: PPUSH
5640: LD_INT 4
5642: PPUSH
5643: CALL_OW 321
5647: PUSH
5648: LD_INT 2
5650: EQUAL
5651: IFFALSE 5669
5653: GO 5655
5655: DISABLE
// begin SetTech ( 4 , 15 , state_enabled ) ;
5656: LD_INT 4
5658: PPUSH
5659: LD_INT 15
5661: PPUSH
5662: LD_INT 1
5664: PPUSH
5665: CALL_OW 322
// end ;
5669: END
// on BuildingComplete ( building ) do var SoldierList , MechList , DocList ;
5670: LD_INT 0
5672: PPUSH
5673: PPUSH
5674: PPUSH
// begin MechList := FilterAllUnits ( [ [ [ f_side , 4 ] , [ f_class , 3 ] ] ] ) ;
5675: LD_ADDR_VAR 0 3
5679: PUSH
5680: LD_INT 22
5682: PUSH
5683: LD_INT 4
5685: PUSH
5686: EMPTY
5687: LIST
5688: LIST
5689: PUSH
5690: LD_INT 25
5692: PUSH
5693: LD_INT 3
5695: PUSH
5696: EMPTY
5697: LIST
5698: LIST
5699: PUSH
5700: EMPTY
5701: LIST
5702: LIST
5703: PUSH
5704: EMPTY
5705: LIST
5706: PPUSH
5707: CALL_OW 69
5711: ST_TO_ADDR
// DocList := FilterAllUnits ( [ [ [ f_side , 4 ] , [ f_class , 4 ] ] ] ) ;
5712: LD_ADDR_VAR 0 4
5716: PUSH
5717: LD_INT 22
5719: PUSH
5720: LD_INT 4
5722: PUSH
5723: EMPTY
5724: LIST
5725: LIST
5726: PUSH
5727: LD_INT 25
5729: PUSH
5730: LD_INT 4
5732: PUSH
5733: EMPTY
5734: LIST
5735: LIST
5736: PUSH
5737: EMPTY
5738: LIST
5739: LIST
5740: PUSH
5741: EMPTY
5742: LIST
5743: PPUSH
5744: CALL_OW 69
5748: ST_TO_ADDR
// if ( GetSide ( building ) = 4 ) and ( GetBType ( building ) = b_control_tower ) and x = true and Researched ( 4 , tech_Opto1 ) then
5749: LD_VAR 0 1
5753: PPUSH
5754: CALL_OW 255
5758: PUSH
5759: LD_INT 4
5761: EQUAL
5762: PUSH
5763: LD_VAR 0 1
5767: PPUSH
5768: CALL_OW 266
5772: PUSH
5773: LD_INT 36
5775: EQUAL
5776: AND
5777: PUSH
5778: LD_EXP 3
5782: PUSH
5783: LD_INT 1
5785: EQUAL
5786: AND
5787: PUSH
5788: LD_INT 4
5790: PPUSH
5791: LD_INT 60
5793: PPUSH
5794: CALL_OW 325
5798: AND
5799: IFFALSE 5968
// begin x = false ;
5801: LD_ADDR_EXP 3
5805: PUSH
5806: LD_INT 0
5808: ST_TO_ADDR
// DialogueOn ;
5809: CALL_OW 6
// if MechList >= 1 then
5813: LD_VAR 0 3
5817: PUSH
5818: LD_INT 1
5820: GREATEREQUAL
5821: IFFALSE 5841
// begin Say ( MechList [ 1 ] , D1 ) ;
5823: LD_VAR 0 3
5827: PUSH
5828: LD_INT 1
5830: ARRAY
5831: PPUSH
5832: LD_STRING D1
5834: PPUSH
5835: CALL_OW 88
// end else
5839: GO 5867
// if DocList >= 1 then
5841: LD_VAR 0 4
5845: PUSH
5846: LD_INT 1
5848: GREATEREQUAL
5849: IFFALSE 5867
// begin Say ( DocList [ 1 ] , D1 ) ;
5851: LD_VAR 0 4
5855: PUSH
5856: LD_INT 1
5858: ARRAY
5859: PPUSH
5860: LD_STRING D1
5862: PPUSH
5863: CALL_OW 88
// end ; SayRadio ( dowRU1 , D2 ) ;
5867: LD_EXP 11
5871: PPUSH
5872: LD_STRING D2
5874: PPUSH
5875: CALL_OW 94
// Say ( Nefarem , D3 ) ;
5879: LD_EXP 10
5883: PPUSH
5884: LD_STRING D3
5886: PPUSH
5887: CALL_OW 88
// if MechList >= 1 then
5891: LD_VAR 0 3
5895: PUSH
5896: LD_INT 1
5898: GREATEREQUAL
5899: IFFALSE 5919
// begin Say ( MechList [ 1 ] , D4 ) ;
5901: LD_VAR 0 3
5905: PUSH
5906: LD_INT 1
5908: ARRAY
5909: PPUSH
5910: LD_STRING D4
5912: PPUSH
5913: CALL_OW 88
// end else
5917: GO 5945
// if DocList >= 1 then
5919: LD_VAR 0 4
5923: PUSH
5924: LD_INT 1
5926: GREATEREQUAL
5927: IFFALSE 5945
// begin Say ( DocList [ 1 ] , D4 ) ;
5929: LD_VAR 0 4
5933: PUSH
5934: LD_INT 1
5936: ARRAY
5937: PPUSH
5938: LD_STRING D4
5940: PPUSH
5941: CALL_OW 88
// end ; Say ( Nefarem , D5 ) ;
5945: LD_EXP 10
5949: PPUSH
5950: LD_STRING D5
5952: PPUSH
5953: CALL_OW 88
// DialogueOff ;
5957: CALL_OW 7
// ChangeMissionObjectives ( M4 ) ;
5961: LD_STRING M4
5963: PPUSH
5964: CALL_OW 337
// end ; end ;
5968: PPOPN 4
5970: END
// every 13 13$00 trigger FilterAllUnits ( [ [ f_side , 4 ] , [ f_btype , b_control_tower ] ] ) >= 1 and GetTech ( tech_Opto1 , 4 ) = state_researched do var SoldierList ;
5971: LD_INT 22
5973: PUSH
5974: LD_INT 4
5976: PUSH
5977: EMPTY
5978: LIST
5979: LIST
5980: PUSH
5981: LD_INT 30
5983: PUSH
5984: LD_INT 36
5986: PUSH
5987: EMPTY
5988: LIST
5989: LIST
5990: PUSH
5991: EMPTY
5992: LIST
5993: LIST
5994: PPUSH
5995: CALL_OW 69
5999: PUSH
6000: LD_INT 1
6002: GREATEREQUAL
6003: PUSH
6004: LD_INT 60
6006: PPUSH
6007: LD_INT 4
6009: PPUSH
6010: CALL_OW 321
6014: PUSH
6015: LD_INT 2
6017: EQUAL
6018: AND
6019: IFFALSE 6082
6021: GO 6023
6023: DISABLE
6024: LD_INT 0
6026: PPUSH
// begin SoldierList := FilterAllUnits ( [ [ f_side , 4 ] , [ f_class , 1 ] ] ) ;
6027: LD_ADDR_VAR 0 1
6031: PUSH
6032: LD_INT 22
6034: PUSH
6035: LD_INT 4
6037: PUSH
6038: EMPTY
6039: LIST
6040: LIST
6041: PUSH
6042: LD_INT 25
6044: PUSH
6045: LD_INT 1
6047: PUSH
6048: EMPTY
6049: LIST
6050: LIST
6051: PUSH
6052: EMPTY
6053: LIST
6054: LIST
6055: PPUSH
6056: CALL_OW 69
6060: ST_TO_ADDR
// SayRadio ( SoldierList [ 1 ] , I1 ) ;
6061: LD_VAR 0 1
6065: PUSH
6066: LD_INT 1
6068: ARRAY
6069: PPUSH
6070: LD_STRING I1
6072: PPUSH
6073: CALL_OW 94
// enable ;
6077: ENABLE
// wsparcie ;
6078: CALL 10808 0 0
// end ;
6082: PPOPN 1
6084: END
// every 0 0$01 trigger GetTech ( tech_Opto1 , 4 ) = state_researched do
6085: LD_INT 60
6087: PPUSH
6088: LD_INT 4
6090: PPUSH
6091: CALL_OW 321
6095: PUSH
6096: LD_INT 2
6098: EQUAL
6099: IFFALSE 6117
6101: GO 6103
6103: DISABLE
// begin SetTech ( tech_RemCont , 4 , state_enabled ) ;
6104: LD_INT 15
6106: PPUSH
6107: LD_INT 4
6109: PPUSH
6110: LD_INT 1
6112: PPUSH
6113: CALL_OW 322
// end ;
6117: END
// every 6 6$00 marked 120 do
6118: GO 6120
6120: DISABLE
// begin dialogueOn ;
6121: CALL_OW 6
// PlaceUnitArea ( mechAM , AreaAdditional , false ) ;
6125: LD_EXP 13
6129: PPUSH
6130: LD_INT 2
6132: PPUSH
6133: LD_INT 0
6135: PPUSH
6136: CALL_OW 49
// ComHold ( mechAM ) ;
6140: LD_EXP 13
6144: PPUSH
6145: CALL_OW 140
// SayRadio ( mechAM , C1 ) ;
6149: LD_EXP 13
6153: PPUSH
6154: LD_STRING C1
6156: PPUSH
6157: CALL_OW 94
// SayRadio ( Nefarem , C2 ) ;
6161: LD_EXP 10
6165: PPUSH
6166: LD_STRING C2
6168: PPUSH
6169: CALL_OW 94
// SayRadio ( mechAM , C3 ) ;
6173: LD_EXP 13
6177: PPUSH
6178: LD_STRING C3
6180: PPUSH
6181: CALL_OW 94
// SayRadio ( Nefarem , C4 ) ;
6185: LD_EXP 10
6189: PPUSH
6190: LD_STRING C4
6192: PPUSH
6193: CALL_OW 94
// SayRadio ( mechAM , C5 ) ;
6197: LD_EXP 13
6201: PPUSH
6202: LD_STRING C5
6204: PPUSH
6205: CALL_OW 94
// SayRadio ( Nefarem , C6 ) ;
6209: LD_EXP 10
6213: PPUSH
6214: LD_STRING C6
6216: PPUSH
6217: CALL_OW 94
// dialogueOff ;
6221: CALL_OW 7
// ChangeMissionObjectives ( M3 ) ;
6225: LD_STRING M3
6227: PPUSH
6228: CALL_OW 337
// enable ( 999 ) ;
6232: LD_INT 999
6234: ENABLE_MARKED
// enable ( 150 ) ;
6235: LD_INT 150
6237: ENABLE_MARKED
// end ;
6238: END
// every 0 0$01 marked 999 do var list ;
6239: GO 6241
6241: DISABLE
6242: LD_INT 0
6244: PPUSH
// begin list = FilterUnitsInArea ( Freeman , [ [ f_side , 4 ] , [ f_type , unit_human ] ] ) ;
6245: LD_ADDR_VAR 0 1
6249: PUSH
6250: LD_INT 18
6252: PPUSH
6253: LD_INT 22
6255: PUSH
6256: LD_INT 4
6258: PUSH
6259: EMPTY
6260: LIST
6261: LIST
6262: PUSH
6263: LD_INT 21
6265: PUSH
6266: LD_INT 1
6268: PUSH
6269: EMPTY
6270: LIST
6271: LIST
6272: PUSH
6273: EMPTY
6274: LIST
6275: LIST
6276: PPUSH
6277: CALL_OW 70
6281: ST_TO_ADDR
// enable ;
6282: ENABLE
// if list >= 1 then
6283: LD_VAR 0 1
6287: PUSH
6288: LD_INT 1
6290: GREATEREQUAL
6291: IFFALSE 6413
// begin DialogueON ;
6293: CALL_OW 6
// Say ( mechAM , G1 ) ;
6297: LD_EXP 13
6301: PPUSH
6302: LD_STRING G1
6304: PPUSH
6305: CALL_OW 88
// Say ( list [ 1 ] , G2 ) ;
6309: LD_VAR 0 1
6313: PUSH
6314: LD_INT 1
6316: ARRAY
6317: PPUSH
6318: LD_STRING G2
6320: PPUSH
6321: CALL_OW 88
// Say ( mechAM , G3 ) ;
6325: LD_EXP 13
6329: PPUSH
6330: LD_STRING G3
6332: PPUSH
6333: CALL_OW 88
// Say ( list [ 1 ] , G4 ) ;
6337: LD_VAR 0 1
6341: PUSH
6342: LD_INT 1
6344: ARRAY
6345: PPUSH
6346: LD_STRING G4
6348: PPUSH
6349: CALL_OW 88
// Say ( mechAM , G5 ) ;
6353: LD_EXP 13
6357: PPUSH
6358: LD_STRING G5
6360: PPUSH
6361: CALL_OW 88
// Say ( list [ 1 ] , G6 ) ;
6365: LD_VAR 0 1
6369: PUSH
6370: LD_INT 1
6372: ARRAY
6373: PPUSH
6374: LD_STRING G6
6376: PPUSH
6377: CALL_OW 88
// DialogueOff ;
6381: CALL_OW 7
// ChangeMissionObjectives ( M5 ) ;
6385: LD_STRING M5
6387: PPUSH
6388: CALL_OW 337
// SetSide ( mechAM , 4 ) ;
6392: LD_EXP 13
6396: PPUSH
6397: LD_INT 4
6399: PPUSH
6400: CALL_OW 235
// medal1 = true ;
6404: LD_ADDR_EXP 2
6408: PUSH
6409: LD_INT 1
6411: ST_TO_ADDR
// disable ;
6412: DISABLE
// end ; end ;
6413: PPOPN 1
6415: END
// every 20 20$00 marked 150 do
6416: GO 6418
6418: DISABLE
// begin if IsInArea ( mechAM , AreaAdditional ) then
6419: LD_EXP 13
6423: PPUSH
6424: LD_INT 2
6426: PPUSH
6427: CALL_OW 308
6431: IFFALSE 6504
// begin dialogueOn ;
6433: CALL_OW 6
// Say ( dowRU1 , H1 ) ;
6437: LD_EXP 11
6441: PPUSH
6442: LD_STRING H1
6444: PPUSH
6445: CALL_OW 88
// Say ( mechAM , H2 ) ;
6449: LD_EXP 13
6453: PPUSH
6454: LD_STRING H2
6456: PPUSH
6457: CALL_OW 88
// Say ( dowRU1 , H3 ) ;
6461: LD_EXP 11
6465: PPUSH
6466: LD_STRING H3
6468: PPUSH
6469: CALL_OW 88
// RemoveUnit ( mechAM ) ;
6473: LD_EXP 13
6477: PPUSH
6478: CALL_OW 64
// dialogueOff ;
6482: CALL_OW 7
// ChangeMissionObjectives ( M5 ) ;
6486: LD_STRING M5
6488: PPUSH
6489: CALL_OW 337
// medal1 = false ;
6493: LD_ADDR_EXP 2
6497: PUSH
6498: LD_INT 0
6500: ST_TO_ADDR
// disable ( 999 ) ;
6501: LD_INT 999
6503: DISABLE_MARKED
// end ; end ;
6504: END
// every 0 0$30 trigger FilterUnitsInArea ( Eng3 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] ] ] ) < 13 or FilterUnitsInArea ( Eng6 , [ [ [ f_side , 6 ] , [ f_type , unit_building ] ] ] ) < 10 do var DocList , MechList ;
6505: LD_INT 6
6507: PPUSH
6508: LD_INT 22
6510: PUSH
6511: LD_INT 3
6513: PUSH
6514: EMPTY
6515: LIST
6516: LIST
6517: PUSH
6518: LD_INT 21
6520: PUSH
6521: LD_INT 3
6523: PUSH
6524: EMPTY
6525: LIST
6526: LIST
6527: PUSH
6528: EMPTY
6529: LIST
6530: LIST
6531: PUSH
6532: EMPTY
6533: LIST
6534: PPUSH
6535: CALL_OW 70
6539: PUSH
6540: LD_INT 13
6542: LESS
6543: PUSH
6544: LD_INT 7
6546: PPUSH
6547: LD_INT 22
6549: PUSH
6550: LD_INT 6
6552: PUSH
6553: EMPTY
6554: LIST
6555: LIST
6556: PUSH
6557: LD_INT 21
6559: PUSH
6560: LD_INT 3
6562: PUSH
6563: EMPTY
6564: LIST
6565: LIST
6566: PUSH
6567: EMPTY
6568: LIST
6569: LIST
6570: PUSH
6571: EMPTY
6572: LIST
6573: PPUSH
6574: CALL_OW 70
6578: PUSH
6579: LD_INT 10
6581: LESS
6582: OR
6583: IFFALSE 6759
6585: GO 6587
6587: DISABLE
6588: LD_INT 0
6590: PPUSH
6591: PPUSH
// begin MechList := FilterAllUnits ( [ [ [ f_side , 4 ] , [ f_class , 3 ] ] ] ) ;
6592: LD_ADDR_VAR 0 2
6596: PUSH
6597: LD_INT 22
6599: PUSH
6600: LD_INT 4
6602: PUSH
6603: EMPTY
6604: LIST
6605: LIST
6606: PUSH
6607: LD_INT 25
6609: PUSH
6610: LD_INT 3
6612: PUSH
6613: EMPTY
6614: LIST
6615: LIST
6616: PUSH
6617: EMPTY
6618: LIST
6619: LIST
6620: PUSH
6621: EMPTY
6622: LIST
6623: PPUSH
6624: CALL_OW 69
6628: ST_TO_ADDR
// DocList := FilterAllUnits ( [ [ [ f_side , 4 ] , [ f_class , 4 ] ] ] ) ;
6629: LD_ADDR_VAR 0 1
6633: PUSH
6634: LD_INT 22
6636: PUSH
6637: LD_INT 4
6639: PUSH
6640: EMPTY
6641: LIST
6642: LIST
6643: PUSH
6644: LD_INT 25
6646: PUSH
6647: LD_INT 4
6649: PUSH
6650: EMPTY
6651: LIST
6652: LIST
6653: PUSH
6654: EMPTY
6655: LIST
6656: LIST
6657: PUSH
6658: EMPTY
6659: LIST
6660: PPUSH
6661: CALL_OW 69
6665: ST_TO_ADDR
// if MechList >= 1 then
6666: LD_VAR 0 2
6670: PUSH
6671: LD_INT 1
6673: GREATEREQUAL
6674: IFFALSE 6694
// begin Say ( MechList [ 1 ] , E1 ) ;
6676: LD_VAR 0 2
6680: PUSH
6681: LD_INT 1
6683: ARRAY
6684: PPUSH
6685: LD_STRING E1
6687: PPUSH
6688: CALL_OW 88
// end else
6692: GO 6720
// if DocList >= 1 then
6694: LD_VAR 0 1
6698: PUSH
6699: LD_INT 1
6701: GREATEREQUAL
6702: IFFALSE 6720
// begin Say ( DocList [ 1 ] , E1 ) ;
6704: LD_VAR 0 1
6708: PUSH
6709: LD_INT 1
6711: ARRAY
6712: PPUSH
6713: LD_STRING E1
6715: PPUSH
6716: CALL_OW 88
// end ; SayRadio ( dowRU2 , E2 ) ;
6720: LD_EXP 12
6724: PPUSH
6725: LD_STRING E2
6727: PPUSH
6728: CALL_OW 94
// SayRadio ( dowRU1 , E3 ) ;
6732: LD_EXP 11
6736: PPUSH
6737: LD_STRING E3
6739: PPUSH
6740: CALL_OW 94
// SayRadio ( dowRU2 , E4 ) ;
6744: LD_EXP 12
6748: PPUSH
6749: LD_STRING E4
6751: PPUSH
6752: CALL_OW 94
// enable ( 160 ) ;
6756: LD_INT 160
6758: ENABLE_MARKED
// end ;
6759: PPOPN 2
6761: END
// every 12 12$00 marked 160 do
6762: GO 6764
6764: DISABLE
// begin enable ;
6765: ENABLE
// EnemyHelp ;
6766: CALL 13134 0 0
// end ;
6770: END
// every 0 0$01 trigger IsDead ( depotRU1 ) and IsDead ( depotRU2 ) or GetSide ( depotRU2 ) = 4 and GetSide ( depotRU1 ) = 4 or IsDead ( depotRU2 ) and GetSide ( depotRU1 ) = 4 or IsDead ( depotRU1 ) and GetSide ( depotRU2 ) = 4 do
6771: LD_INT 194
6773: PPUSH
6774: CALL_OW 301
6778: PUSH
6779: LD_INT 280
6781: PPUSH
6782: CALL_OW 301
6786: AND
6787: PUSH
6788: LD_INT 280
6790: PPUSH
6791: CALL_OW 255
6795: PUSH
6796: LD_INT 4
6798: EQUAL
6799: PUSH
6800: LD_INT 194
6802: PPUSH
6803: CALL_OW 255
6807: PUSH
6808: LD_INT 4
6810: EQUAL
6811: AND
6812: OR
6813: PUSH
6814: LD_INT 280
6816: PPUSH
6817: CALL_OW 301
6821: PUSH
6822: LD_INT 194
6824: PPUSH
6825: CALL_OW 255
6829: PUSH
6830: LD_INT 4
6832: EQUAL
6833: AND
6834: OR
6835: PUSH
6836: LD_INT 194
6838: PPUSH
6839: CALL_OW 301
6843: PUSH
6844: LD_INT 280
6846: PPUSH
6847: CALL_OW 255
6851: PUSH
6852: LD_INT 4
6854: EQUAL
6855: AND
6856: OR
6857: IFFALSE 6934
6859: GO 6861
6861: DISABLE
// begin Dialogueon ;
6862: CALL_OW 6
// SayRadio ( Nefarem , J1 ) ;
6866: LD_EXP 10
6870: PPUSH
6871: LD_STRING J1
6873: PPUSH
6874: CALL_OW 94
// SayRadio ( Mjr , J2 ) ;
6878: LD_EXP 9
6882: PPUSH
6883: LD_STRING J2
6885: PPUSH
6886: CALL_OW 94
// SayRadio ( Nefarem , J3 ) ;
6890: LD_EXP 10
6894: PPUSH
6895: LD_STRING J3
6897: PPUSH
6898: CALL_OW 94
// Dialogueoff ;
6902: CALL_OW 7
// ChangeMissionObjectives ( M6 ) ;
6906: LD_STRING M6
6908: PPUSH
6909: CALL_OW 337
// SetAreaMapShow ( Area10 , 1 ) ;
6913: LD_INT 5
6915: PPUSH
6916: LD_INT 1
6918: PPUSH
6919: CALL_OW 424
// EndGame = true ;
6923: LD_ADDR_EXP 5
6927: PUSH
6928: LD_INT 1
6930: ST_TO_ADDR
// disable ( 160 ) ;
6931: LD_INT 160
6933: DISABLE_MARKED
// end ;
6934: END
// every 0 0$01 trigger EndGame = true do var filter , i , tab , Units ;
6935: LD_EXP 5
6939: PUSH
6940: LD_INT 1
6942: EQUAL
6943: IFFALSE 7458
6945: GO 6947
6947: DISABLE
6948: LD_INT 0
6950: PPUSH
6951: PPUSH
6952: PPUSH
6953: PPUSH
// begin enable ;
6954: ENABLE
// if FilterUnitsInArea ( Area10 , [ [ f_side , 4 ] , [ f_type , unit_vehicle ] , [ f_control , Control_manual ] , [ f_not , [ f_empty ] ] ] ) = 4 and IsInArea ( Nefarem , Area10 ) then
6955: LD_INT 5
6957: PPUSH
6958: LD_INT 22
6960: PUSH
6961: LD_INT 4
6963: PUSH
6964: EMPTY
6965: LIST
6966: LIST
6967: PUSH
6968: LD_INT 21
6970: PUSH
6971: LD_INT 2
6973: PUSH
6974: EMPTY
6975: LIST
6976: LIST
6977: PUSH
6978: LD_INT 33
6980: PUSH
6981: LD_INT 1
6983: PUSH
6984: EMPTY
6985: LIST
6986: LIST
6987: PUSH
6988: LD_INT 3
6990: PUSH
6991: LD_INT 58
6993: PUSH
6994: EMPTY
6995: LIST
6996: PUSH
6997: EMPTY
6998: LIST
6999: LIST
7000: PUSH
7001: EMPTY
7002: LIST
7003: LIST
7004: LIST
7005: LIST
7006: PPUSH
7007: CALL_OW 70
7011: PUSH
7012: LD_INT 4
7014: EQUAL
7015: PUSH
7016: LD_EXP 10
7020: PPUSH
7021: LD_INT 5
7023: PPUSH
7024: CALL_OW 308
7028: AND
7029: IFFALSE 7458
// begin SetSide ( Nefarem , 1 ) ;
7031: LD_EXP 10
7035: PPUSH
7036: LD_INT 1
7038: PPUSH
7039: CALL_OW 235
// wait ( 0 0$1 ) ;
7043: LD_INT 35
7045: PPUSH
7046: CALL_OW 67
// InGameOff ;
7050: CALL_OW 9
// Units = [ ] ;
7054: LD_ADDR_VAR 0 4
7058: PUSH
7059: EMPTY
7060: ST_TO_ADDR
// tab := [ ] ;
7061: LD_ADDR_VAR 0 3
7065: PUSH
7066: EMPTY
7067: ST_TO_ADDR
// filter := FilterUnitsInArea ( Area10 , [ [ f_side , 4 ] , [ f_type , unit_vehicle ] ] ) ;
7068: LD_ADDR_VAR 0 1
7072: PUSH
7073: LD_INT 5
7075: PPUSH
7076: LD_INT 22
7078: PUSH
7079: LD_INT 4
7081: PUSH
7082: EMPTY
7083: LIST
7084: LIST
7085: PUSH
7086: LD_INT 21
7088: PUSH
7089: LD_INT 2
7091: PUSH
7092: EMPTY
7093: LIST
7094: LIST
7095: PUSH
7096: EMPTY
7097: LIST
7098: LIST
7099: PPUSH
7100: CALL_OW 70
7104: ST_TO_ADDR
// for i in filter do
7105: LD_ADDR_VAR 0 2
7109: PUSH
7110: LD_VAR 0 1
7114: PUSH
7115: FOR_IN
7116: IFFALSE 7298
// begin tab := tab ^ [ GetChassis ( i ) , GetEngine ( i ) , GetControl ( i ) , GetWeapon ( i ) ] ;
7118: LD_ADDR_VAR 0 3
7122: PUSH
7123: LD_VAR 0 3
7127: PUSH
7128: LD_VAR 0 2
7132: PPUSH
7133: CALL_OW 265
7137: PUSH
7138: LD_VAR 0 2
7142: PPUSH
7143: CALL_OW 262
7147: PUSH
7148: LD_VAR 0 2
7152: PPUSH
7153: CALL_OW 263
7157: PUSH
7158: LD_VAR 0 2
7162: PPUSH
7163: CALL_OW 264
7167: PUSH
7168: EMPTY
7169: LIST
7170: LIST
7171: LIST
7172: LIST
7173: ADD
7174: ST_TO_ADDR
// if GetSide ( IsDrivenBy ( i ) ) = 4 then
7175: LD_VAR 0 2
7179: PPUSH
7180: CALL_OW 311
7184: PPUSH
7185: CALL_OW 255
7189: PUSH
7190: LD_INT 4
7192: EQUAL
7193: IFFALSE 7296
// begin Units = Units ^ IsDrivenBy ( i ) ;
7195: LD_ADDR_VAR 0 4
7199: PUSH
7200: LD_VAR 0 4
7204: PUSH
7205: LD_VAR 0 2
7209: PPUSH
7210: CALL_OW 311
7214: ADD
7215: ST_TO_ADDR
// AddExperience ( IsDrivenBy ( i ) , skill_combat , 4500 ) ;
7216: LD_VAR 0 2
7220: PPUSH
7221: CALL_OW 311
7225: PPUSH
7226: LD_INT 1
7228: PPUSH
7229: LD_INT 4500
7231: PPUSH
7232: CALL_OW 492
// AddExperience ( IsDrivenBy ( i ) , skill_engineering , 4500 ) ;
7236: LD_VAR 0 2
7240: PPUSH
7241: CALL_OW 311
7245: PPUSH
7246: LD_INT 2
7248: PPUSH
7249: LD_INT 4500
7251: PPUSH
7252: CALL_OW 492
// AddExperience ( IsDrivenBy ( i ) , skill_mechanical , 4000 ) ;
7256: LD_VAR 0 2
7260: PPUSH
7261: CALL_OW 311
7265: PPUSH
7266: LD_INT 3
7268: PPUSH
7269: LD_INT 4000
7271: PPUSH
7272: CALL_OW 492
// AddExperience ( IsDrivenBy ( i ) , skill_scientistic , 4000 ) ;
7276: LD_VAR 0 2
7280: PPUSH
7281: CALL_OW 311
7285: PPUSH
7286: LD_INT 4
7288: PPUSH
7289: LD_INT 4000
7291: PPUSH
7292: CALL_OW 492
// end ; end ;
7296: GO 7115
7298: POP
7299: POP
// AddExperience ( Nefarem , skill_combat , 3500 ) ;
7300: LD_EXP 10
7304: PPUSH
7305: LD_INT 1
7307: PPUSH
7308: LD_INT 3500
7310: PPUSH
7311: CALL_OW 492
// AddExperience ( Nefarem , skill_engineering , 3500 ) ;
7315: LD_EXP 10
7319: PPUSH
7320: LD_INT 2
7322: PPUSH
7323: LD_INT 3500
7325: PPUSH
7326: CALL_OW 492
// AddExperience ( Nefarem , skill_mechanical , 2000 ) ;
7330: LD_EXP 10
7334: PPUSH
7335: LD_INT 3
7337: PPUSH
7338: LD_INT 2000
7340: PPUSH
7341: CALL_OW 492
// AddExperience ( Nefarem , skill_scientistic , 2000 ) ;
7345: LD_EXP 10
7349: PPUSH
7350: LD_INT 4
7352: PPUSH
7353: LD_INT 2000
7355: PPUSH
7356: CALL_OW 492
// RewardPeople ( [ Nefarem , Units ] ) ;
7360: LD_EXP 10
7364: PUSH
7365: LD_VAR 0 4
7369: PUSH
7370: EMPTY
7371: LIST
7372: LIST
7373: PPUSH
7374: CALL_OW 43
// SaveCharacters ( Units [ 1 ] , Human1 ) ;
7378: LD_VAR 0 4
7382: PUSH
7383: LD_INT 1
7385: ARRAY
7386: PPUSH
7387: LD_STRING Human1
7389: PPUSH
7390: CALL_OW 38
// SaveCharacters ( Units [ 2 ] , Human2 ) ;
7394: LD_VAR 0 4
7398: PUSH
7399: LD_INT 2
7401: ARRAY
7402: PPUSH
7403: LD_STRING Human2
7405: PPUSH
7406: CALL_OW 38
// SaveCharacters ( Units [ 3 ] , Human3 ) ;
7410: LD_VAR 0 4
7414: PUSH
7415: LD_INT 3
7417: ARRAY
7418: PPUSH
7419: LD_STRING Human3
7421: PPUSH
7422: CALL_OW 38
// SaveCharacters ( Nefarem , Nefarem ) ;
7426: LD_EXP 10
7430: PPUSH
7431: LD_STRING Nefarem
7433: PPUSH
7434: CALL_OW 38
// SaveVariable ( tab , unit_vehs ) ;
7438: LD_VAR 0 3
7442: PPUSH
7443: LD_STRING unit_vehs
7445: PPUSH
7446: CALL_OW 39
// medale ;
7450: CALL 14383 0 0
// YouWin ;
7454: CALL_OW 103
// end ; end ;
7458: PPOPN 4
7460: END
// on enterbuilding ( b , un ) do begin if b = armouryAM1 then
7461: LD_VAR 0 1
7465: PUSH
7466: LD_INT 182
7468: EQUAL
7469: IFFALSE 7537
// case un of Mjr :
7471: LD_VAR 0 2
7475: PUSH
7476: LD_EXP 9
7480: DOUBLE
7481: EQUAL
7482: IFTRUE 7486
7484: GO 7536
7486: POP
// begin wait ( 0 0$01 ) ;
7487: LD_INT 35
7489: PPUSH
7490: CALL_OW 67
// SetSide ( FilterUnitsInArea ( AMBase , [ [ f_side , 1 ] ] ) , 4 ) ;
7494: LD_INT 9
7496: PPUSH
7497: LD_INT 22
7499: PUSH
7500: LD_INT 1
7502: PUSH
7503: EMPTY
7504: LIST
7505: LIST
7506: PUSH
7507: EMPTY
7508: LIST
7509: PPUSH
7510: CALL_OW 70
7514: PPUSH
7515: LD_INT 4
7517: PPUSH
7518: CALL_OW 235
// SetSide ( AmericanPerson , 4 ) ;
7522: LD_EXP 1
7526: PPUSH
7527: LD_INT 4
7529: PPUSH
7530: CALL_OW 235
// end ; end ;
7534: GO 7537
7536: POP
// end ; end_of_file
7537: PPOPN 2
7539: END
// export buildings5 , buildings6 , buildings3 ; every 0 0$01 do
7540: GO 7542
7542: DISABLE
// begin enable ;
7543: ENABLE
// buildings5 := FilterUnitsInArea ( Eng5 , [ [ [ f_side , 5 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
7544: LD_ADDR_EXP 6
7548: PUSH
7549: LD_INT 8
7551: PPUSH
7552: LD_INT 22
7554: PUSH
7555: LD_INT 5
7557: PUSH
7558: EMPTY
7559: LIST
7560: LIST
7561: PUSH
7562: LD_INT 21
7564: PUSH
7565: LD_INT 3
7567: PUSH
7568: EMPTY
7569: LIST
7570: LIST
7571: PUSH
7572: LD_INT 3
7574: PUSH
7575: LD_INT 24
7577: PUSH
7578: LD_INT 1000
7580: PUSH
7581: EMPTY
7582: LIST
7583: LIST
7584: PUSH
7585: EMPTY
7586: LIST
7587: LIST
7588: PUSH
7589: EMPTY
7590: LIST
7591: LIST
7592: LIST
7593: PUSH
7594: EMPTY
7595: LIST
7596: PPUSH
7597: CALL_OW 70
7601: ST_TO_ADDR
// buildings6 := FilterUnitsInArea ( Eng6 , [ [ [ f_side , 6 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
7602: LD_ADDR_EXP 7
7606: PUSH
7607: LD_INT 7
7609: PPUSH
7610: LD_INT 22
7612: PUSH
7613: LD_INT 6
7615: PUSH
7616: EMPTY
7617: LIST
7618: LIST
7619: PUSH
7620: LD_INT 21
7622: PUSH
7623: LD_INT 3
7625: PUSH
7626: EMPTY
7627: LIST
7628: LIST
7629: PUSH
7630: LD_INT 3
7632: PUSH
7633: LD_INT 24
7635: PUSH
7636: LD_INT 1000
7638: PUSH
7639: EMPTY
7640: LIST
7641: LIST
7642: PUSH
7643: EMPTY
7644: LIST
7645: LIST
7646: PUSH
7647: EMPTY
7648: LIST
7649: LIST
7650: LIST
7651: PUSH
7652: EMPTY
7653: LIST
7654: PPUSH
7655: CALL_OW 70
7659: ST_TO_ADDR
// buildings3 := FilterUnitsInArea ( Eng3 , [ [ [ f_side , 5 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
7660: LD_ADDR_EXP 8
7664: PUSH
7665: LD_INT 6
7667: PPUSH
7668: LD_INT 22
7670: PUSH
7671: LD_INT 5
7673: PUSH
7674: EMPTY
7675: LIST
7676: LIST
7677: PUSH
7678: LD_INT 21
7680: PUSH
7681: LD_INT 3
7683: PUSH
7684: EMPTY
7685: LIST
7686: LIST
7687: PUSH
7688: LD_INT 3
7690: PUSH
7691: LD_INT 24
7693: PUSH
7694: LD_INT 1000
7696: PUSH
7697: EMPTY
7698: LIST
7699: LIST
7700: PUSH
7701: EMPTY
7702: LIST
7703: LIST
7704: PUSH
7705: EMPTY
7706: LIST
7707: LIST
7708: LIST
7709: PUSH
7710: EMPTY
7711: LIST
7712: PPUSH
7713: CALL_OW 70
7717: ST_TO_ADDR
// end ;
7718: END
// every 0 0$01 do var EnginerList , EnginerListOutside , buildings , i ;
7719: GO 7721
7721: DISABLE
7722: LD_INT 0
7724: PPUSH
7725: PPUSH
7726: PPUSH
7727: PPUSH
// begin enable ;
7728: ENABLE
// EnginerList := UnitsInside ( depotRU3 ) ;
7729: LD_ADDR_VAR 0 1
7733: PUSH
7734: LD_INT 284
7736: PPUSH
7737: CALL_OW 313
7741: ST_TO_ADDR
// EnginerListOutside := FilterAllUnits ( [ [ [ f_side , 5 ] , [ f_class , 2 ] ] ] ) ;
7742: LD_ADDR_VAR 0 2
7746: PUSH
7747: LD_INT 22
7749: PUSH
7750: LD_INT 5
7752: PUSH
7753: EMPTY
7754: LIST
7755: LIST
7756: PUSH
7757: LD_INT 25
7759: PUSH
7760: LD_INT 2
7762: PUSH
7763: EMPTY
7764: LIST
7765: LIST
7766: PUSH
7767: EMPTY
7768: LIST
7769: LIST
7770: PUSH
7771: EMPTY
7772: LIST
7773: PPUSH
7774: CALL_OW 69
7778: ST_TO_ADDR
// if buildings5 > 0 then
7779: LD_EXP 6
7783: PUSH
7784: LD_INT 0
7786: GREATER
7787: IFFALSE 7935
// begin repeat for i = 1 to EnginerList do
7789: LD_ADDR_VAR 0 4
7793: PUSH
7794: DOUBLE
7795: LD_INT 1
7797: DEC
7798: ST_TO_ADDR
7799: LD_VAR 0 1
7803: PUSH
7804: FOR_TO
7805: IFFALSE 7914
// begin if HasTask ( EnginerList [ i ] ) = true then
7807: LD_VAR 0 1
7811: PUSH
7812: LD_VAR 0 4
7816: ARRAY
7817: PPUSH
7818: CALL_OW 314
7822: PUSH
7823: LD_INT 1
7825: EQUAL
7826: IFFALSE 7830
// begin end else
7828: GO 7912
// begin if IsInUnit ( EnginerList [ i ] ) then
7830: LD_VAR 0 1
7834: PUSH
7835: LD_VAR 0 4
7839: ARRAY
7840: PPUSH
7841: CALL_OW 310
7845: IFFALSE 7888
// begin ComExitBuilding ( EnginerList [ i ] ) ;
7847: LD_VAR 0 1
7851: PUSH
7852: LD_VAR 0 4
7856: ARRAY
7857: PPUSH
7858: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings5 [ 1 ] ) ;
7862: LD_VAR 0 1
7866: PUSH
7867: LD_VAR 0 4
7871: ARRAY
7872: PPUSH
7873: LD_EXP 6
7877: PUSH
7878: LD_INT 1
7880: ARRAY
7881: PPUSH
7882: CALL_OW 190
// end else
7886: GO 7912
// begin AddComRepairBuilding ( EnginerList [ i ] , buildings5 [ 1 ] ) ;
7888: LD_VAR 0 1
7892: PUSH
7893: LD_VAR 0 4
7897: ARRAY
7898: PPUSH
7899: LD_EXP 6
7903: PUSH
7904: LD_INT 1
7906: ARRAY
7907: PPUSH
7908: CALL_OW 190
// end ; end ; end ;
7912: GO 7804
7914: POP
7915: POP
// wait ( 0 0$01 ) ;
7916: LD_INT 35
7918: PPUSH
7919: CALL_OW 67
// until buildings5 = 0 end else
7923: LD_EXP 6
7927: PUSH
7928: LD_INT 0
7930: EQUAL
7931: IFFALSE 7789
7933: GO 8004
// if buildings5 = 0 then
7935: LD_EXP 6
7939: PUSH
7940: LD_INT 0
7942: EQUAL
7943: IFFALSE 8004
// begin for i = 1 to EnginerListOutside do
7945: LD_ADDR_VAR 0 4
7949: PUSH
7950: DOUBLE
7951: LD_INT 1
7953: DEC
7954: ST_TO_ADDR
7955: LD_VAR 0 2
7959: PUSH
7960: FOR_TO
7961: IFFALSE 8002
// begin if IsInUnit ( EnginerList [ i ] ) then
7963: LD_VAR 0 1
7967: PUSH
7968: LD_VAR 0 4
7972: ARRAY
7973: PPUSH
7974: CALL_OW 310
7978: IFFALSE 7982
// begin end else
7980: GO 8000
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU3 ) ;
7982: LD_VAR 0 2
7986: PUSH
7987: LD_VAR 0 4
7991: ARRAY
7992: PPUSH
7993: LD_INT 284
7995: PPUSH
7996: CALL_OW 120
// end ; end ;
8000: GO 7960
8002: POP
8003: POP
// end ; end ;
8004: PPOPN 4
8006: END
// every 0 0$01 do var EnginerList , EnginerListOutside , buildings , i ;
8007: GO 8009
8009: DISABLE
8010: LD_INT 0
8012: PPUSH
8013: PPUSH
8014: PPUSH
8015: PPUSH
// begin enable ;
8016: ENABLE
// EnginerList := UnitsInside ( depotRU2 ) ;
8017: LD_ADDR_VAR 0 1
8021: PUSH
8022: LD_INT 280
8024: PPUSH
8025: CALL_OW 313
8029: ST_TO_ADDR
// EnginerListOutside := FilterAllUnits ( [ [ [ f_side , 6 ] , [ f_class , 2 ] ] ] ) ;
8030: LD_ADDR_VAR 0 2
8034: PUSH
8035: LD_INT 22
8037: PUSH
8038: LD_INT 6
8040: PUSH
8041: EMPTY
8042: LIST
8043: LIST
8044: PUSH
8045: LD_INT 25
8047: PUSH
8048: LD_INT 2
8050: PUSH
8051: EMPTY
8052: LIST
8053: LIST
8054: PUSH
8055: EMPTY
8056: LIST
8057: LIST
8058: PUSH
8059: EMPTY
8060: LIST
8061: PPUSH
8062: CALL_OW 69
8066: ST_TO_ADDR
// if buildings6 > 0 then
8067: LD_EXP 7
8071: PUSH
8072: LD_INT 0
8074: GREATER
8075: IFFALSE 8223
// begin repeat for i = 1 to EnginerList do
8077: LD_ADDR_VAR 0 4
8081: PUSH
8082: DOUBLE
8083: LD_INT 1
8085: DEC
8086: ST_TO_ADDR
8087: LD_VAR 0 1
8091: PUSH
8092: FOR_TO
8093: IFFALSE 8202
// begin if HasTask ( EnginerList [ i ] ) = true then
8095: LD_VAR 0 1
8099: PUSH
8100: LD_VAR 0 4
8104: ARRAY
8105: PPUSH
8106: CALL_OW 314
8110: PUSH
8111: LD_INT 1
8113: EQUAL
8114: IFFALSE 8118
// begin end else
8116: GO 8200
// begin if IsInUnit ( EnginerList [ i ] ) then
8118: LD_VAR 0 1
8122: PUSH
8123: LD_VAR 0 4
8127: ARRAY
8128: PPUSH
8129: CALL_OW 310
8133: IFFALSE 8176
// begin ComExitBuilding ( EnginerList [ i ] ) ;
8135: LD_VAR 0 1
8139: PUSH
8140: LD_VAR 0 4
8144: ARRAY
8145: PPUSH
8146: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings6 [ 1 ] ) ;
8150: LD_VAR 0 1
8154: PUSH
8155: LD_VAR 0 4
8159: ARRAY
8160: PPUSH
8161: LD_EXP 7
8165: PUSH
8166: LD_INT 1
8168: ARRAY
8169: PPUSH
8170: CALL_OW 190
// end else
8174: GO 8200
// begin AddComRepairBuilding ( EnginerList [ i ] , buildings6 [ 1 ] ) ;
8176: LD_VAR 0 1
8180: PUSH
8181: LD_VAR 0 4
8185: ARRAY
8186: PPUSH
8187: LD_EXP 7
8191: PUSH
8192: LD_INT 1
8194: ARRAY
8195: PPUSH
8196: CALL_OW 190
// end ; end ; end ;
8200: GO 8092
8202: POP
8203: POP
// wait ( 0 0$01 ) ;
8204: LD_INT 35
8206: PPUSH
8207: CALL_OW 67
// until buildings6 = 0 end else
8211: LD_EXP 7
8215: PUSH
8216: LD_INT 0
8218: EQUAL
8219: IFFALSE 8077
8221: GO 8292
// if buildings6 = 0 then
8223: LD_EXP 7
8227: PUSH
8228: LD_INT 0
8230: EQUAL
8231: IFFALSE 8292
// begin for i = 1 to EnginerListOutside do
8233: LD_ADDR_VAR 0 4
8237: PUSH
8238: DOUBLE
8239: LD_INT 1
8241: DEC
8242: ST_TO_ADDR
8243: LD_VAR 0 2
8247: PUSH
8248: FOR_TO
8249: IFFALSE 8290
// begin if IsInUnit ( EnginerList [ i ] ) then
8251: LD_VAR 0 1
8255: PUSH
8256: LD_VAR 0 4
8260: ARRAY
8261: PPUSH
8262: CALL_OW 310
8266: IFFALSE 8270
// begin end else
8268: GO 8288
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU3 ) ;
8270: LD_VAR 0 2
8274: PUSH
8275: LD_VAR 0 4
8279: ARRAY
8280: PPUSH
8281: LD_INT 284
8283: PPUSH
8284: CALL_OW 120
// end ; end ;
8288: GO 8248
8290: POP
8291: POP
// end ; end ;
8292: PPOPN 4
8294: END
// every 0 0$01 do var EnginerList , EnginerListOutside , buildings , i ;
8295: GO 8297
8297: DISABLE
8298: LD_INT 0
8300: PPUSH
8301: PPUSH
8302: PPUSH
8303: PPUSH
// begin enable ;
8304: ENABLE
// EnginerList := UnitsInside ( depotRU1 ) ;
8305: LD_ADDR_VAR 0 1
8309: PUSH
8310: LD_INT 194
8312: PPUSH
8313: CALL_OW 313
8317: ST_TO_ADDR
// EnginerListOutside := FilterAllUnits ( [ [ [ f_side , 3 ] , [ f_class , 2 ] ] ] ) ;
8318: LD_ADDR_VAR 0 2
8322: PUSH
8323: LD_INT 22
8325: PUSH
8326: LD_INT 3
8328: PUSH
8329: EMPTY
8330: LIST
8331: LIST
8332: PUSH
8333: LD_INT 25
8335: PUSH
8336: LD_INT 2
8338: PUSH
8339: EMPTY
8340: LIST
8341: LIST
8342: PUSH
8343: EMPTY
8344: LIST
8345: LIST
8346: PUSH
8347: EMPTY
8348: LIST
8349: PPUSH
8350: CALL_OW 69
8354: ST_TO_ADDR
// if buildings3 > 0 then
8355: LD_EXP 8
8359: PUSH
8360: LD_INT 0
8362: GREATER
8363: IFFALSE 8511
// begin repeat for i = 1 to EnginerList do
8365: LD_ADDR_VAR 0 4
8369: PUSH
8370: DOUBLE
8371: LD_INT 1
8373: DEC
8374: ST_TO_ADDR
8375: LD_VAR 0 1
8379: PUSH
8380: FOR_TO
8381: IFFALSE 8490
// begin if HasTask ( EnginerList [ i ] ) = true then
8383: LD_VAR 0 1
8387: PUSH
8388: LD_VAR 0 4
8392: ARRAY
8393: PPUSH
8394: CALL_OW 314
8398: PUSH
8399: LD_INT 1
8401: EQUAL
8402: IFFALSE 8406
// begin end else
8404: GO 8488
// begin if IsInUnit ( EnginerList [ i ] ) then
8406: LD_VAR 0 1
8410: PUSH
8411: LD_VAR 0 4
8415: ARRAY
8416: PPUSH
8417: CALL_OW 310
8421: IFFALSE 8464
// begin ComExitBuilding ( EnginerList [ i ] ) ;
8423: LD_VAR 0 1
8427: PUSH
8428: LD_VAR 0 4
8432: ARRAY
8433: PPUSH
8434: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings3 [ 1 ] ) ;
8438: LD_VAR 0 1
8442: PUSH
8443: LD_VAR 0 4
8447: ARRAY
8448: PPUSH
8449: LD_EXP 8
8453: PUSH
8454: LD_INT 1
8456: ARRAY
8457: PPUSH
8458: CALL_OW 190
// end else
8462: GO 8488
// begin AddComRepairBuilding ( EnginerList [ i ] , buildings3 [ 1 ] ) ;
8464: LD_VAR 0 1
8468: PUSH
8469: LD_VAR 0 4
8473: ARRAY
8474: PPUSH
8475: LD_EXP 8
8479: PUSH
8480: LD_INT 1
8482: ARRAY
8483: PPUSH
8484: CALL_OW 190
// end ; end ; end ;
8488: GO 8380
8490: POP
8491: POP
// wait ( 0 0$01 ) ;
8492: LD_INT 35
8494: PPUSH
8495: CALL_OW 67
// until buildings3 = 0 end else
8499: LD_EXP 8
8503: PUSH
8504: LD_INT 0
8506: EQUAL
8507: IFFALSE 8365
8509: GO 8580
// if buildings3 = 0 then
8511: LD_EXP 8
8515: PUSH
8516: LD_INT 0
8518: EQUAL
8519: IFFALSE 8580
// begin for i = 1 to EnginerListOutside do
8521: LD_ADDR_VAR 0 4
8525: PUSH
8526: DOUBLE
8527: LD_INT 1
8529: DEC
8530: ST_TO_ADDR
8531: LD_VAR 0 2
8535: PUSH
8536: FOR_TO
8537: IFFALSE 8578
// begin if IsInUnit ( EnginerList [ i ] ) then
8539: LD_VAR 0 1
8543: PUSH
8544: LD_VAR 0 4
8548: ARRAY
8549: PPUSH
8550: CALL_OW 310
8554: IFFALSE 8558
// begin end else
8556: GO 8576
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU3 ) ;
8558: LD_VAR 0 2
8562: PUSH
8563: LD_VAR 0 4
8567: ARRAY
8568: PPUSH
8569: LD_INT 284
8571: PPUSH
8572: CALL_OW 120
// end ; end ;
8576: GO 8536
8578: POP
8579: POP
// end ; end ; end_of_file
8580: PPOPN 4
8582: END
// every 4 4$00 trigger FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) = 0 marked 100 do var Level ;
8583: LD_INT 22
8585: PUSH
8586: LD_INT 6
8588: PUSH
8589: EMPTY
8590: LIST
8591: LIST
8592: PUSH
8593: LD_INT 21
8595: PUSH
8596: LD_INT 2
8598: PUSH
8599: EMPTY
8600: LIST
8601: LIST
8602: PUSH
8603: LD_INT 33
8605: PUSH
8606: LD_INT 3
8608: PUSH
8609: EMPTY
8610: LIST
8611: LIST
8612: PUSH
8613: EMPTY
8614: LIST
8615: LIST
8616: LIST
8617: PPUSH
8618: CALL_OW 69
8622: PUSH
8623: LD_INT 0
8625: EQUAL
8626: IFFALSE 8996
8628: GO 8630
8630: DISABLE
8631: LD_INT 0
8633: PPUSH
// begin enable ;
8634: ENABLE
// Level = [ 1 , 2 , 3 ] [ Difficulty ] ;
8635: LD_ADDR_VAR 0 1
8639: PUSH
8640: LD_INT 1
8642: PUSH
8643: LD_INT 2
8645: PUSH
8646: LD_INT 3
8648: PUSH
8649: EMPTY
8650: LIST
8651: LIST
8652: LIST
8653: PUSH
8654: LD_OWVAR 67
8658: ARRAY
8659: ST_TO_ADDR
// if GetSide ( factoryRU2 ) = 6 then
8660: LD_INT 299
8662: PPUSH
8663: CALL_OW 255
8667: PUSH
8668: LD_INT 6
8670: EQUAL
8671: IFFALSE 8996
// begin case Level of 1 :
8673: LD_VAR 0 1
8677: PUSH
8678: LD_INT 1
8680: DOUBLE
8681: EQUAL
8682: IFTRUE 8686
8684: GO 8783
8686: POP
// begin AddComConstruct ( factoryRU2 , ru_medium_tracked , engine_combustion , control_computer , ru_gun ) ;
8687: LD_INT 299
8689: PPUSH
8690: LD_INT 22
8692: PPUSH
8693: LD_INT 1
8695: PPUSH
8696: LD_INT 3
8698: PPUSH
8699: LD_INT 44
8701: PPUSH
8702: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_medium_tracked , engine_combustion , control_computer , ru_gun ) ;
8706: LD_INT 299
8708: PPUSH
8709: LD_INT 22
8711: PPUSH
8712: LD_INT 1
8714: PPUSH
8715: LD_INT 3
8717: PPUSH
8718: LD_INT 44
8720: PPUSH
8721: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_medium_wheeled , engine_combustion , control_computer , ru_heavy_machine_gun ) ;
8725: LD_INT 299
8727: PPUSH
8728: LD_INT 21
8730: PPUSH
8731: LD_INT 1
8733: PPUSH
8734: LD_INT 3
8736: PPUSH
8737: LD_INT 42
8739: PPUSH
8740: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_medium_wheeled , engine_combustion , control_computer , ru_gatling_gun ) ;
8744: LD_INT 299
8746: PPUSH
8747: LD_INT 21
8749: PPUSH
8750: LD_INT 1
8752: PPUSH
8753: LD_INT 3
8755: PPUSH
8756: LD_INT 43
8758: PPUSH
8759: CALL_OW 185
// SetResourceType ( GetBase ( depotRU2 ) , mat_cans , 300 ) ;
8763: LD_INT 280
8765: PPUSH
8766: CALL_OW 274
8770: PPUSH
8771: LD_INT 1
8773: PPUSH
8774: LD_INT 300
8776: PPUSH
8777: CALL_OW 277
// end ; 2 :
8781: GO 8994
8783: LD_INT 2
8785: DOUBLE
8786: EQUAL
8787: IFTRUE 8791
8789: GO 8888
8791: POP
// begin AddComConstruct ( factoryRU2 , ru_heavy_wheeled , engine_combustion , control_computer , ru_gun ) ;
8792: LD_INT 299
8794: PPUSH
8795: LD_INT 23
8797: PPUSH
8798: LD_INT 1
8800: PPUSH
8801: LD_INT 3
8803: PPUSH
8804: LD_INT 44
8806: PPUSH
8807: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_heavy_wheeled , engine_combustion , control_computer , ru_heavy_machine_gun ) ;
8811: LD_INT 299
8813: PPUSH
8814: LD_INT 23
8816: PPUSH
8817: LD_INT 1
8819: PPUSH
8820: LD_INT 3
8822: PPUSH
8823: LD_INT 42
8825: PPUSH
8826: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_heavy_wheeled , engine_combustion , control_computer , ru_gatling_gun ) ;
8830: LD_INT 299
8832: PPUSH
8833: LD_INT 23
8835: PPUSH
8836: LD_INT 1
8838: PPUSH
8839: LD_INT 3
8841: PPUSH
8842: LD_INT 43
8844: PPUSH
8845: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_heavy_wheeled , engine_combustion , control_computer , ru_gun ) ;
8849: LD_INT 299
8851: PPUSH
8852: LD_INT 23
8854: PPUSH
8855: LD_INT 1
8857: PPUSH
8858: LD_INT 3
8860: PPUSH
8861: LD_INT 44
8863: PPUSH
8864: CALL_OW 185
// SetResourceType ( GetBase ( depotRU2 ) , mat_cans , 400 ) ;
8868: LD_INT 280
8870: PPUSH
8871: CALL_OW 274
8875: PPUSH
8876: LD_INT 1
8878: PPUSH
8879: LD_INT 400
8881: PPUSH
8882: CALL_OW 277
// end ; 3 :
8886: GO 8994
8888: LD_INT 3
8890: DOUBLE
8891: EQUAL
8892: IFTRUE 8896
8894: GO 8993
8896: POP
// begin AddComConstruct ( factoryRU2 , ru_heavy_tracked , engine_combustion , control_computer , ru_gun ) ;
8897: LD_INT 299
8899: PPUSH
8900: LD_INT 24
8902: PPUSH
8903: LD_INT 1
8905: PPUSH
8906: LD_INT 3
8908: PPUSH
8909: LD_INT 44
8911: PPUSH
8912: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_heavy_tracked , engine_combustion , control_computer , ru_heavy_gun ) ;
8916: LD_INT 299
8918: PPUSH
8919: LD_INT 24
8921: PPUSH
8922: LD_INT 1
8924: PPUSH
8925: LD_INT 3
8927: PPUSH
8928: LD_INT 46
8930: PPUSH
8931: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_heavy_tracked , engine_combustion , control_computer , ru_heavy_gun ) ;
8935: LD_INT 299
8937: PPUSH
8938: LD_INT 24
8940: PPUSH
8941: LD_INT 1
8943: PPUSH
8944: LD_INT 3
8946: PPUSH
8947: LD_INT 46
8949: PPUSH
8950: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_heavy_tracked , engine_combustion , control_computer , ru_gatling_gun ) ;
8954: LD_INT 299
8956: PPUSH
8957: LD_INT 24
8959: PPUSH
8960: LD_INT 1
8962: PPUSH
8963: LD_INT 3
8965: PPUSH
8966: LD_INT 43
8968: PPUSH
8969: CALL_OW 185
// SetResourceType ( GetBase ( depotRU2 ) , mat_cans , 500 ) ;
8973: LD_INT 280
8975: PPUSH
8976: CALL_OW 274
8980: PPUSH
8981: LD_INT 1
8983: PPUSH
8984: LD_INT 500
8986: PPUSH
8987: CALL_OW 277
// end ; end ;
8991: GO 8994
8993: POP
// end else
8994: GO 8996
// end ;
8996: PPOPN 1
8998: END
// every 0 0$01 do var Level ;
8999: GO 9001
9001: DISABLE
9002: LD_INT 0
9004: PPUSH
// begin enable ;
9005: ENABLE
// Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
9006: LD_ADDR_VAR 0 1
9010: PUSH
9011: LD_INT 4
9013: PUSH
9014: LD_INT 4
9016: PUSH
9017: LD_INT 4
9019: PUSH
9020: EMPTY
9021: LIST
9022: LIST
9023: LIST
9024: PUSH
9025: LD_OWVAR 67
9029: ARRAY
9030: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) = Level then
9031: LD_INT 22
9033: PUSH
9034: LD_INT 6
9036: PUSH
9037: EMPTY
9038: LIST
9039: LIST
9040: PUSH
9041: LD_INT 21
9043: PUSH
9044: LD_INT 2
9046: PUSH
9047: EMPTY
9048: LIST
9049: LIST
9050: PUSH
9051: LD_INT 33
9053: PUSH
9054: LD_INT 3
9056: PUSH
9057: EMPTY
9058: LIST
9059: LIST
9060: PUSH
9061: EMPTY
9062: LIST
9063: LIST
9064: LIST
9065: PPUSH
9066: CALL_OW 69
9070: PUSH
9071: LD_VAR 0 1
9075: EQUAL
9076: IFFALSE 9083
// begin enable ( 60 ) ;
9078: LD_INT 60
9080: ENABLE_MARKED
// end else
9081: GO 9131
// if FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) = 0 then
9083: LD_INT 22
9085: PUSH
9086: LD_INT 6
9088: PUSH
9089: EMPTY
9090: LIST
9091: LIST
9092: PUSH
9093: LD_INT 21
9095: PUSH
9096: LD_INT 2
9098: PUSH
9099: EMPTY
9100: LIST
9101: LIST
9102: PUSH
9103: LD_INT 33
9105: PUSH
9106: LD_INT 3
9108: PUSH
9109: EMPTY
9110: LIST
9111: LIST
9112: PUSH
9113: EMPTY
9114: LIST
9115: LIST
9116: LIST
9117: PPUSH
9118: CALL_OW 69
9122: PUSH
9123: LD_INT 0
9125: EQUAL
9126: IFFALSE 9131
// begin disable ( 60 ) ;
9128: LD_INT 60
9130: DISABLE_MARKED
// end ; end ;
9131: PPOPN 1
9133: END
// every 0 0$2 marked 60 do var i , atakujacy , broniacy ;
9134: GO 9136
9136: DISABLE
9137: LD_INT 0
9139: PPUSH
9140: PPUSH
9141: PPUSH
// begin enable ;
9142: ENABLE
// broniacy = FilterAllUnits ( [ f_side , 4 ] ) ;
9143: LD_ADDR_VAR 0 3
9147: PUSH
9148: LD_INT 22
9150: PUSH
9151: LD_INT 4
9153: PUSH
9154: EMPTY
9155: LIST
9156: LIST
9157: PPUSH
9158: CALL_OW 69
9162: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) ;
9163: LD_ADDR_VAR 0 2
9167: PUSH
9168: LD_INT 22
9170: PUSH
9171: LD_INT 6
9173: PUSH
9174: EMPTY
9175: LIST
9176: LIST
9177: PUSH
9178: LD_INT 21
9180: PUSH
9181: LD_INT 2
9183: PUSH
9184: EMPTY
9185: LIST
9186: LIST
9187: PUSH
9188: LD_INT 33
9190: PUSH
9191: LD_INT 3
9193: PUSH
9194: EMPTY
9195: LIST
9196: LIST
9197: PUSH
9198: EMPTY
9199: LIST
9200: LIST
9201: LIST
9202: PPUSH
9203: CALL_OW 69
9207: ST_TO_ADDR
// for i in atakujacy do
9208: LD_ADDR_VAR 0 1
9212: PUSH
9213: LD_VAR 0 2
9217: PUSH
9218: FOR_IN
9219: IFFALSE 9259
// begin ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
9221: LD_VAR 0 1
9225: PPUSH
9226: LD_VAR 0 3
9230: PPUSH
9231: LD_VAR 0 1
9235: PPUSH
9236: CALL_OW 74
9240: PPUSH
9241: CALL_OW 115
// SetFuel ( i , 100 ) ;
9245: LD_VAR 0 1
9249: PPUSH
9250: LD_INT 100
9252: PPUSH
9253: CALL_OW 240
// end ;
9257: GO 9218
9259: POP
9260: POP
// end ;
9261: PPOPN 3
9263: END
// every 3 3$30 trigger FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) = 0 marked 100 do var Level ;
9264: LD_INT 22
9266: PUSH
9267: LD_INT 3
9269: PUSH
9270: EMPTY
9271: LIST
9272: LIST
9273: PUSH
9274: LD_INT 21
9276: PUSH
9277: LD_INT 2
9279: PUSH
9280: EMPTY
9281: LIST
9282: LIST
9283: PUSH
9284: LD_INT 33
9286: PUSH
9287: LD_INT 3
9289: PUSH
9290: EMPTY
9291: LIST
9292: LIST
9293: PUSH
9294: EMPTY
9295: LIST
9296: LIST
9297: LIST
9298: PPUSH
9299: CALL_OW 69
9303: PUSH
9304: LD_INT 0
9306: EQUAL
9307: IFFALSE 9677
9309: GO 9311
9311: DISABLE
9312: LD_INT 0
9314: PPUSH
// begin enable ;
9315: ENABLE
// Level = [ 1 , 2 , 3 ] [ Difficulty ] ;
9316: LD_ADDR_VAR 0 1
9320: PUSH
9321: LD_INT 1
9323: PUSH
9324: LD_INT 2
9326: PUSH
9327: LD_INT 3
9329: PUSH
9330: EMPTY
9331: LIST
9332: LIST
9333: LIST
9334: PUSH
9335: LD_OWVAR 67
9339: ARRAY
9340: ST_TO_ADDR
// if GetSide ( factoryRU1 ) = 3 then
9341: LD_INT 255
9343: PPUSH
9344: CALL_OW 255
9348: PUSH
9349: LD_INT 3
9351: EQUAL
9352: IFFALSE 9677
// begin case Level of 1 :
9354: LD_VAR 0 1
9358: PUSH
9359: LD_INT 1
9361: DOUBLE
9362: EQUAL
9363: IFTRUE 9367
9365: GO 9464
9367: POP
// begin AddComConstruct ( factoryRU1 , ru_medium_tracked , engine_combustion , control_computer , ru_gun ) ;
9368: LD_INT 255
9370: PPUSH
9371: LD_INT 22
9373: PPUSH
9374: LD_INT 1
9376: PPUSH
9377: LD_INT 3
9379: PPUSH
9380: LD_INT 44
9382: PPUSH
9383: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_medium_tracked , engine_combustion , control_computer , ru_gun ) ;
9387: LD_INT 255
9389: PPUSH
9390: LD_INT 22
9392: PPUSH
9393: LD_INT 1
9395: PPUSH
9396: LD_INT 3
9398: PPUSH
9399: LD_INT 44
9401: PPUSH
9402: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_medium_tracked , engine_combustion , control_computer , ru_heavy_machine_gun ) ;
9406: LD_INT 255
9408: PPUSH
9409: LD_INT 22
9411: PPUSH
9412: LD_INT 1
9414: PPUSH
9415: LD_INT 3
9417: PPUSH
9418: LD_INT 42
9420: PPUSH
9421: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_medium_tracked , engine_combustion , control_computer , ru_gatling_gun ) ;
9425: LD_INT 255
9427: PPUSH
9428: LD_INT 22
9430: PPUSH
9431: LD_INT 1
9433: PPUSH
9434: LD_INT 3
9436: PPUSH
9437: LD_INT 43
9439: PPUSH
9440: CALL_OW 185
// SetResourceType ( GetBase ( depotRU1 ) , mat_cans , 300 ) ;
9444: LD_INT 194
9446: PPUSH
9447: CALL_OW 274
9451: PPUSH
9452: LD_INT 1
9454: PPUSH
9455: LD_INT 300
9457: PPUSH
9458: CALL_OW 277
// end ; 2 :
9462: GO 9675
9464: LD_INT 2
9466: DOUBLE
9467: EQUAL
9468: IFTRUE 9472
9470: GO 9569
9472: POP
// begin AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_gun ) ;
9473: LD_INT 255
9475: PPUSH
9476: LD_INT 24
9478: PPUSH
9479: LD_INT 1
9481: PPUSH
9482: LD_INT 3
9484: PPUSH
9485: LD_INT 44
9487: PPUSH
9488: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_gatling_gun ) ;
9492: LD_INT 255
9494: PPUSH
9495: LD_INT 24
9497: PPUSH
9498: LD_INT 1
9500: PPUSH
9501: LD_INT 3
9503: PPUSH
9504: LD_INT 43
9506: PPUSH
9507: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_heavy_machine_gun ) ;
9511: LD_INT 255
9513: PPUSH
9514: LD_INT 24
9516: PPUSH
9517: LD_INT 1
9519: PPUSH
9520: LD_INT 3
9522: PPUSH
9523: LD_INT 42
9525: PPUSH
9526: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_medium_tracked , engine_combustion , control_computer , ru_heavy_gun ) ;
9530: LD_INT 255
9532: PPUSH
9533: LD_INT 22
9535: PPUSH
9536: LD_INT 1
9538: PPUSH
9539: LD_INT 3
9541: PPUSH
9542: LD_INT 46
9544: PPUSH
9545: CALL_OW 185
// SetResourceType ( GetBase ( depotRU1 ) , mat_cans , 400 ) ;
9549: LD_INT 194
9551: PPUSH
9552: CALL_OW 274
9556: PPUSH
9557: LD_INT 1
9559: PPUSH
9560: LD_INT 400
9562: PPUSH
9563: CALL_OW 277
// end ; 3 :
9567: GO 9675
9569: LD_INT 3
9571: DOUBLE
9572: EQUAL
9573: IFTRUE 9577
9575: GO 9674
9577: POP
// begin AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_gun ) ;
9578: LD_INT 255
9580: PPUSH
9581: LD_INT 24
9583: PPUSH
9584: LD_INT 1
9586: PPUSH
9587: LD_INT 3
9589: PPUSH
9590: LD_INT 44
9592: PPUSH
9593: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_heavy_gun ) ;
9597: LD_INT 255
9599: PPUSH
9600: LD_INT 24
9602: PPUSH
9603: LD_INT 1
9605: PPUSH
9606: LD_INT 3
9608: PPUSH
9609: LD_INT 46
9611: PPUSH
9612: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_heavy_gun ) ;
9616: LD_INT 255
9618: PPUSH
9619: LD_INT 24
9621: PPUSH
9622: LD_INT 1
9624: PPUSH
9625: LD_INT 3
9627: PPUSH
9628: LD_INT 46
9630: PPUSH
9631: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_gatling_gun ) ;
9635: LD_INT 255
9637: PPUSH
9638: LD_INT 24
9640: PPUSH
9641: LD_INT 1
9643: PPUSH
9644: LD_INT 3
9646: PPUSH
9647: LD_INT 43
9649: PPUSH
9650: CALL_OW 185
// SetResourceType ( GetBase ( depotRU1 ) , mat_cans , 500 ) ;
9654: LD_INT 194
9656: PPUSH
9657: CALL_OW 274
9661: PPUSH
9662: LD_INT 1
9664: PPUSH
9665: LD_INT 500
9667: PPUSH
9668: CALL_OW 277
// end ; end ;
9672: GO 9675
9674: POP
// end else
9675: GO 9677
// end ;
9677: PPOPN 1
9679: END
// every 0 0$01 do var Level ;
9680: GO 9682
9682: DISABLE
9683: LD_INT 0
9685: PPUSH
// begin enable ;
9686: ENABLE
// if FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) = 4 then
9687: LD_INT 22
9689: PUSH
9690: LD_INT 3
9692: PUSH
9693: EMPTY
9694: LIST
9695: LIST
9696: PUSH
9697: LD_INT 21
9699: PUSH
9700: LD_INT 2
9702: PUSH
9703: EMPTY
9704: LIST
9705: LIST
9706: PUSH
9707: LD_INT 33
9709: PUSH
9710: LD_INT 3
9712: PUSH
9713: EMPTY
9714: LIST
9715: LIST
9716: PUSH
9717: EMPTY
9718: LIST
9719: LIST
9720: LIST
9721: PPUSH
9722: CALL_OW 69
9726: PUSH
9727: LD_INT 4
9729: EQUAL
9730: IFFALSE 9737
// begin enable ( 30 ) ;
9732: LD_INT 30
9734: ENABLE_MARKED
// end else
9735: GO 9785
// if FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) = 0 then
9737: LD_INT 22
9739: PUSH
9740: LD_INT 3
9742: PUSH
9743: EMPTY
9744: LIST
9745: LIST
9746: PUSH
9747: LD_INT 21
9749: PUSH
9750: LD_INT 2
9752: PUSH
9753: EMPTY
9754: LIST
9755: LIST
9756: PUSH
9757: LD_INT 33
9759: PUSH
9760: LD_INT 3
9762: PUSH
9763: EMPTY
9764: LIST
9765: LIST
9766: PUSH
9767: EMPTY
9768: LIST
9769: LIST
9770: LIST
9771: PPUSH
9772: CALL_OW 69
9776: PUSH
9777: LD_INT 0
9779: EQUAL
9780: IFFALSE 9785
// begin disable ( 30 ) ;
9782: LD_INT 30
9784: DISABLE_MARKED
// end ; end ;
9785: PPOPN 1
9787: END
// every 0 0$2 marked 30 do var i , atakujacy , broniacy ;
9788: GO 9790
9790: DISABLE
9791: LD_INT 0
9793: PPUSH
9794: PPUSH
9795: PPUSH
// begin enable ;
9796: ENABLE
// broniacy = FilterAllUnits ( [ f_side , 4 ] ) ;
9797: LD_ADDR_VAR 0 3
9801: PUSH
9802: LD_INT 22
9804: PUSH
9805: LD_INT 4
9807: PUSH
9808: EMPTY
9809: LIST
9810: LIST
9811: PPUSH
9812: CALL_OW 69
9816: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) ;
9817: LD_ADDR_VAR 0 2
9821: PUSH
9822: LD_INT 22
9824: PUSH
9825: LD_INT 3
9827: PUSH
9828: EMPTY
9829: LIST
9830: LIST
9831: PUSH
9832: LD_INT 21
9834: PUSH
9835: LD_INT 2
9837: PUSH
9838: EMPTY
9839: LIST
9840: LIST
9841: PUSH
9842: LD_INT 33
9844: PUSH
9845: LD_INT 3
9847: PUSH
9848: EMPTY
9849: LIST
9850: LIST
9851: PUSH
9852: EMPTY
9853: LIST
9854: LIST
9855: LIST
9856: PPUSH
9857: CALL_OW 69
9861: ST_TO_ADDR
// for i in atakujacy do
9862: LD_ADDR_VAR 0 1
9866: PUSH
9867: LD_VAR 0 2
9871: PUSH
9872: FOR_IN
9873: IFFALSE 9913
// begin ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
9875: LD_VAR 0 1
9879: PPUSH
9880: LD_VAR 0 3
9884: PPUSH
9885: LD_VAR 0 1
9889: PPUSH
9890: CALL_OW 74
9894: PPUSH
9895: CALL_OW 115
// SetFuel ( i , 100 ) ;
9899: LD_VAR 0 1
9903: PPUSH
9904: LD_INT 100
9906: PPUSH
9907: CALL_OW 240
// end ;
9911: GO 9872
9913: POP
9914: POP
// end ; end_of_file
9915: PPOPN 3
9917: END
// export Mjr , Nefarem , dowRU1 , dowRU2 , mechAM , mech1 , DowAM ; export function HEROES ; begin
9918: LD_INT 0
9920: PPUSH
// uc_side = 4 ;
9921: LD_ADDR_OWVAR 20
9925: PUSH
9926: LD_INT 4
9928: ST_TO_ADDR
// uc_nation = 1 ;
9929: LD_ADDR_OWVAR 21
9933: PUSH
9934: LD_INT 1
9936: ST_TO_ADDR
// Nefarem := CreateCharacter ( Nefarem ) ;
9937: LD_ADDR_EXP 10
9941: PUSH
9942: LD_STRING Nefarem
9944: PPUSH
9945: CALL_OW 34
9949: ST_TO_ADDR
// PlaceHumanInUnit ( Nefarem , f1 ) ;
9950: LD_EXP 10
9954: PPUSH
9955: LD_INT 727
9957: PPUSH
9958: CALL_OW 52
// setcargo ( f1 , mat_cans , 100 ) ;
9962: LD_INT 727
9964: PPUSH
9965: LD_INT 1
9967: PPUSH
9968: LD_INT 100
9970: PPUSH
9971: CALL_OW 290
// uc_side = 1 ;
9975: LD_ADDR_OWVAR 20
9979: PUSH
9980: LD_INT 1
9982: ST_TO_ADDR
// uc_nation = 1 ;
9983: LD_ADDR_OWVAR 21
9987: PUSH
9988: LD_INT 1
9990: ST_TO_ADDR
// Mjr := CreateCharacter ( Mjr ) ;
9991: LD_ADDR_EXP 9
9995: PUSH
9996: LD_STRING Mjr
9998: PPUSH
9999: CALL_OW 34
10003: ST_TO_ADDR
// PlaceHumanInUnit ( Mjr , f2 ) ;
10004: LD_EXP 9
10008: PPUSH
10009: LD_INT 744
10011: PPUSH
10012: CALL_OW 52
// setcargo ( f2 , mat_cans , 100 ) ;
10016: LD_INT 744
10018: PPUSH
10019: LD_INT 1
10021: PPUSH
10022: LD_INT 100
10024: PPUSH
10025: CALL_OW 290
// uc_side = 1 ;
10029: LD_ADDR_OWVAR 20
10033: PUSH
10034: LD_INT 1
10036: ST_TO_ADDR
// uc_nation = 1 ;
10037: LD_ADDR_OWVAR 21
10041: PUSH
10042: LD_INT 1
10044: ST_TO_ADDR
// hc_gallery =  ;
10045: LD_ADDR_OWVAR 33
10049: PUSH
10050: LD_STRING 
10052: ST_TO_ADDR
// hc_name =  ;
10053: LD_ADDR_OWVAR 26
10057: PUSH
10058: LD_STRING 
10060: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
10061: LD_ADDR_OWVAR 29
10065: PUSH
10066: LD_INT 9
10068: PPUSH
10069: LD_INT 11
10071: PPUSH
10072: CALL_OW 12
10076: PUSH
10077: LD_INT 10
10079: PPUSH
10080: LD_INT 12
10082: PPUSH
10083: CALL_OW 12
10087: PUSH
10088: EMPTY
10089: LIST
10090: LIST
10091: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 2 ) , Rand ( 1 , 3 ) , 6 , Rand ( 0 , 4 ) ] ;
10092: LD_ADDR_OWVAR 31
10096: PUSH
10097: LD_INT 0
10099: PPUSH
10100: LD_INT 2
10102: PPUSH
10103: CALL_OW 12
10107: PUSH
10108: LD_INT 1
10110: PPUSH
10111: LD_INT 3
10113: PPUSH
10114: CALL_OW 12
10118: PUSH
10119: LD_INT 6
10121: PUSH
10122: LD_INT 0
10124: PPUSH
10125: LD_INT 4
10127: PPUSH
10128: CALL_OW 12
10132: PUSH
10133: EMPTY
10134: LIST
10135: LIST
10136: LIST
10137: LIST
10138: ST_TO_ADDR
// hc_sex = sex_male ;
10139: LD_ADDR_OWVAR 27
10143: PUSH
10144: LD_INT 1
10146: ST_TO_ADDR
// hc_class = 3 ;
10147: LD_ADDR_OWVAR 28
10151: PUSH
10152: LD_INT 3
10154: ST_TO_ADDR
// mechAM := CreateHuman ;
10155: LD_ADDR_EXP 13
10159: PUSH
10160: CALL_OW 44
10164: ST_TO_ADDR
// uc_side = 1 ;
10165: LD_ADDR_OWVAR 20
10169: PUSH
10170: LD_INT 1
10172: ST_TO_ADDR
// uc_nation = 1 ;
10173: LD_ADDR_OWVAR 21
10177: PUSH
10178: LD_INT 1
10180: ST_TO_ADDR
// hc_gallery =  ;
10181: LD_ADDR_OWVAR 33
10185: PUSH
10186: LD_STRING 
10188: ST_TO_ADDR
// hc_name =  ;
10189: LD_ADDR_OWVAR 26
10193: PUSH
10194: LD_STRING 
10196: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
10197: LD_ADDR_OWVAR 29
10201: PUSH
10202: LD_INT 9
10204: PPUSH
10205: LD_INT 11
10207: PPUSH
10208: CALL_OW 12
10212: PUSH
10213: LD_INT 10
10215: PPUSH
10216: LD_INT 12
10218: PPUSH
10219: CALL_OW 12
10223: PUSH
10224: EMPTY
10225: LIST
10226: LIST
10227: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 2 ) , Rand ( 1 , 3 ) , 5 , Rand ( 0 , 4 ) ] ;
10228: LD_ADDR_OWVAR 31
10232: PUSH
10233: LD_INT 0
10235: PPUSH
10236: LD_INT 2
10238: PPUSH
10239: CALL_OW 12
10243: PUSH
10244: LD_INT 1
10246: PPUSH
10247: LD_INT 3
10249: PPUSH
10250: CALL_OW 12
10254: PUSH
10255: LD_INT 5
10257: PUSH
10258: LD_INT 0
10260: PPUSH
10261: LD_INT 4
10263: PPUSH
10264: CALL_OW 12
10268: PUSH
10269: EMPTY
10270: LIST
10271: LIST
10272: LIST
10273: LIST
10274: ST_TO_ADDR
// hc_sex = sex_male ;
10275: LD_ADDR_OWVAR 27
10279: PUSH
10280: LD_INT 1
10282: ST_TO_ADDR
// hc_class = 3 ;
10283: LD_ADDR_OWVAR 28
10287: PUSH
10288: LD_INT 3
10290: ST_TO_ADDR
// mech1 := CreateHuman ;
10291: LD_ADDR_EXP 14
10295: PUSH
10296: CALL_OW 44
10300: ST_TO_ADDR
// PlaceUnitArea ( mech1 , spawnMech1 , false ) ;
10301: LD_EXP 14
10305: PPUSH
10306: LD_INT 17
10308: PPUSH
10309: LD_INT 0
10311: PPUSH
10312: CALL_OW 49
// uc_side = 1 ;
10316: LD_ADDR_OWVAR 20
10320: PUSH
10321: LD_INT 1
10323: ST_TO_ADDR
// uc_nation = 1 ;
10324: LD_ADDR_OWVAR 21
10328: PUSH
10329: LD_INT 1
10331: ST_TO_ADDR
// hc_gallery =  ;
10332: LD_ADDR_OWVAR 33
10336: PUSH
10337: LD_STRING 
10339: ST_TO_ADDR
// hc_name =  ;
10340: LD_ADDR_OWVAR 26
10344: PUSH
10345: LD_STRING 
10347: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
10348: LD_ADDR_OWVAR 29
10352: PUSH
10353: LD_INT 9
10355: PPUSH
10356: LD_INT 11
10358: PPUSH
10359: CALL_OW 12
10363: PUSH
10364: LD_INT 10
10366: PPUSH
10367: LD_INT 12
10369: PPUSH
10370: CALL_OW 12
10374: PUSH
10375: EMPTY
10376: LIST
10377: LIST
10378: ST_TO_ADDR
// hc_skills = [ 5 , Rand ( 1 , 3 ) , Rand ( 0 , 2 ) , Rand ( 0 , 1 ) ] ;
10379: LD_ADDR_OWVAR 31
10383: PUSH
10384: LD_INT 5
10386: PUSH
10387: LD_INT 1
10389: PPUSH
10390: LD_INT 3
10392: PPUSH
10393: CALL_OW 12
10397: PUSH
10398: LD_INT 0
10400: PPUSH
10401: LD_INT 2
10403: PPUSH
10404: CALL_OW 12
10408: PUSH
10409: LD_INT 0
10411: PPUSH
10412: LD_INT 1
10414: PPUSH
10415: CALL_OW 12
10419: PUSH
10420: EMPTY
10421: LIST
10422: LIST
10423: LIST
10424: LIST
10425: ST_TO_ADDR
// hc_sex = sex_male ;
10426: LD_ADDR_OWVAR 27
10430: PUSH
10431: LD_INT 1
10433: ST_TO_ADDR
// hc_class = 1 ;
10434: LD_ADDR_OWVAR 28
10438: PUSH
10439: LD_INT 1
10441: ST_TO_ADDR
// dowAM := CreateHuman ;
10442: LD_ADDR_EXP 15
10446: PUSH
10447: CALL_OW 44
10451: ST_TO_ADDR
// PlaceUnitArea ( dowAM , spawnDowAM , false ) ;
10452: LD_EXP 15
10456: PPUSH
10457: LD_INT 16
10459: PPUSH
10460: LD_INT 0
10462: PPUSH
10463: CALL_OW 49
// uc_side = 3 ;
10467: LD_ADDR_OWVAR 20
10471: PUSH
10472: LD_INT 3
10474: ST_TO_ADDR
// uc_nation = 3 ;
10475: LD_ADDR_OWVAR 21
10479: PUSH
10480: LD_INT 3
10482: ST_TO_ADDR
// hc_gallery =  ;
10483: LD_ADDR_OWVAR 33
10487: PUSH
10488: LD_STRING 
10490: ST_TO_ADDR
// hc_name =  ;
10491: LD_ADDR_OWVAR 26
10495: PUSH
10496: LD_STRING 
10498: ST_TO_ADDR
// hc_importance = 100 ;
10499: LD_ADDR_OWVAR 32
10503: PUSH
10504: LD_INT 100
10506: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
10507: LD_ADDR_OWVAR 29
10511: PUSH
10512: LD_INT 9
10514: PPUSH
10515: LD_INT 11
10517: PPUSH
10518: CALL_OW 12
10522: PUSH
10523: LD_INT 10
10525: PPUSH
10526: LD_INT 12
10528: PPUSH
10529: CALL_OW 12
10533: PUSH
10534: EMPTY
10535: LIST
10536: LIST
10537: ST_TO_ADDR
// hc_skills = [ 7 , Rand ( 1 , 3 ) , Rand ( 2 , 4 ) , Rand ( 0 , 4 ) ] ;
10538: LD_ADDR_OWVAR 31
10542: PUSH
10543: LD_INT 7
10545: PUSH
10546: LD_INT 1
10548: PPUSH
10549: LD_INT 3
10551: PPUSH
10552: CALL_OW 12
10556: PUSH
10557: LD_INT 2
10559: PPUSH
10560: LD_INT 4
10562: PPUSH
10563: CALL_OW 12
10567: PUSH
10568: LD_INT 0
10570: PPUSH
10571: LD_INT 4
10573: PPUSH
10574: CALL_OW 12
10578: PUSH
10579: EMPTY
10580: LIST
10581: LIST
10582: LIST
10583: LIST
10584: ST_TO_ADDR
// hc_sex = sex_male ;
10585: LD_ADDR_OWVAR 27
10589: PUSH
10590: LD_INT 1
10592: ST_TO_ADDR
// hc_class = 1 ;
10593: LD_ADDR_OWVAR 28
10597: PUSH
10598: LD_INT 1
10600: ST_TO_ADDR
// dowRU1 := CreateHuman ;
10601: LD_ADDR_EXP 11
10605: PUSH
10606: CALL_OW 44
10610: ST_TO_ADDR
// PlaceHumanInUnit ( dowRU1 , armouryRU1 ) ;
10611: LD_EXP 11
10615: PPUSH
10616: LD_INT 209
10618: PPUSH
10619: CALL_OW 52
// uc_side = 5 ;
10623: LD_ADDR_OWVAR 20
10627: PUSH
10628: LD_INT 5
10630: ST_TO_ADDR
// uc_nation = 3 ;
10631: LD_ADDR_OWVAR 21
10635: PUSH
10636: LD_INT 3
10638: ST_TO_ADDR
// hc_gallery =  ;
10639: LD_ADDR_OWVAR 33
10643: PUSH
10644: LD_STRING 
10646: ST_TO_ADDR
// hc_name =  ;
10647: LD_ADDR_OWVAR 26
10651: PUSH
10652: LD_STRING 
10654: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
10655: LD_ADDR_OWVAR 29
10659: PUSH
10660: LD_INT 9
10662: PPUSH
10663: LD_INT 11
10665: PPUSH
10666: CALL_OW 12
10670: PUSH
10671: LD_INT 10
10673: PPUSH
10674: LD_INT 12
10676: PPUSH
10677: CALL_OW 12
10681: PUSH
10682: EMPTY
10683: LIST
10684: LIST
10685: ST_TO_ADDR
// hc_skills = [ 7 , Rand ( 1 , 3 ) , Rand ( 2 , 4 ) , Rand ( 0 , 4 ) ] ;
10686: LD_ADDR_OWVAR 31
10690: PUSH
10691: LD_INT 7
10693: PUSH
10694: LD_INT 1
10696: PPUSH
10697: LD_INT 3
10699: PPUSH
10700: CALL_OW 12
10704: PUSH
10705: LD_INT 2
10707: PPUSH
10708: LD_INT 4
10710: PPUSH
10711: CALL_OW 12
10715: PUSH
10716: LD_INT 0
10718: PPUSH
10719: LD_INT 4
10721: PPUSH
10722: CALL_OW 12
10726: PUSH
10727: EMPTY
10728: LIST
10729: LIST
10730: LIST
10731: LIST
10732: ST_TO_ADDR
// hc_sex = sex_male ;
10733: LD_ADDR_OWVAR 27
10737: PUSH
10738: LD_INT 1
10740: ST_TO_ADDR
// hc_class = 1 ;
10741: LD_ADDR_OWVAR 28
10745: PUSH
10746: LD_INT 1
10748: ST_TO_ADDR
// dowRU2 := CreateHuman ;
10749: LD_ADDR_EXP 12
10753: PUSH
10754: CALL_OW 44
10758: ST_TO_ADDR
// end ; end_of_file
10759: LD_VAR 0 1
10763: RET
// every 0 0$01 trigger Center = 1 do
10764: LD_EXP 4
10768: PUSH
10769: LD_INT 1
10771: EQUAL
10772: IFFALSE 10807
10774: GO 10776
10776: DISABLE
// begin ; enable ;
10777: ENABLE
// if IsInUnit ( Nefarem ) then
10778: LD_EXP 10
10782: PPUSH
10783: CALL_OW 310
10787: IFFALSE 10798
// begin CenterNowOnUnits ( f1 ) ;
10789: LD_INT 727
10791: PPUSH
10792: CALL_OW 87
// end else
10796: GO 10807
// begin CenterNowOnUnits ( Nefarem ) ;
10798: LD_EXP 10
10802: PPUSH
10803: CALL_OW 87
// end ; end ; end_of_file
10807: END
// export function wsparcie ; var l , un ; begin
10808: LD_INT 0
10810: PPUSH
10811: PPUSH
10812: PPUSH
// l = 0 ;
10813: LD_ADDR_VAR 0 2
10817: PUSH
10818: LD_INT 0
10820: ST_TO_ADDR
// repeat vc_chassis = 3 ;
10821: LD_ADDR_OWVAR 37
10825: PUSH
10826: LD_INT 3
10828: ST_TO_ADDR
// vc_engine = engine_combustion ;
10829: LD_ADDR_OWVAR 39
10833: PUSH
10834: LD_INT 1
10836: ST_TO_ADDR
// vc_control = control_Computer ;
10837: LD_ADDR_OWVAR 38
10841: PUSH
10842: LD_INT 3
10844: ST_TO_ADDR
// vc_weapon = 12 ;
10845: LD_ADDR_OWVAR 40
10849: PUSH
10850: LD_INT 12
10852: ST_TO_ADDR
// uc_side = 4 ;
10853: LD_ADDR_OWVAR 20
10857: PUSH
10858: LD_INT 4
10860: ST_TO_ADDR
// uc_nation = 1 ;
10861: LD_ADDR_OWVAR 21
10865: PUSH
10866: LD_INT 1
10868: ST_TO_ADDR
// un = CreateVehicle ;
10869: LD_ADDR_VAR 0 3
10873: PUSH
10874: CALL_OW 45
10878: ST_TO_ADDR
// setcargo ( un , mat_cans , 100 ) ;
10879: LD_VAR 0 3
10883: PPUSH
10884: LD_INT 1
10886: PPUSH
10887: LD_INT 100
10889: PPUSH
10890: CALL_OW 290
// PlaceUnitArea ( un , Area06 , false ) ;
10894: LD_VAR 0 3
10898: PPUSH
10899: LD_INT 1
10901: PPUSH
10902: LD_INT 0
10904: PPUSH
10905: CALL_OW 49
// l = l + 1 ;
10909: LD_ADDR_VAR 0 2
10913: PUSH
10914: LD_VAR 0 2
10918: PUSH
10919: LD_INT 1
10921: PLUS
10922: ST_TO_ADDR
// until l = 2 ;
10923: LD_VAR 0 2
10927: PUSH
10928: LD_INT 2
10930: EQUAL
10931: IFFALSE 10821
// end ; end_of_file
10933: LD_VAR 0 1
10937: RET
// every 0 0$01 do var MechList , Level , un , ve , Chasis , weap , l ;
10938: GO 10940
10940: DISABLE
10941: LD_INT 0
10943: PPUSH
10944: PPUSH
10945: PPUSH
10946: PPUSH
10947: PPUSH
10948: PPUSH
10949: PPUSH
// begin Level = [ 5 , 6 , 7 ] [ Difficulty ] ;
10950: LD_ADDR_VAR 0 2
10954: PUSH
10955: LD_INT 5
10957: PUSH
10958: LD_INT 6
10960: PUSH
10961: LD_INT 7
10963: PUSH
10964: EMPTY
10965: LIST
10966: LIST
10967: LIST
10968: PUSH
10969: LD_OWVAR 67
10973: ARRAY
10974: ST_TO_ADDR
// Chasis = [ ru_medium_wheeled , ru_medium_tracked , ru_heavy_wheeled ] [ Difficulty ] ;
10975: LD_ADDR_VAR 0 5
10979: PUSH
10980: LD_INT 21
10982: PUSH
10983: LD_INT 22
10985: PUSH
10986: LD_INT 23
10988: PUSH
10989: EMPTY
10990: LIST
10991: LIST
10992: LIST
10993: PUSH
10994: LD_OWVAR 67
10998: ARRAY
10999: ST_TO_ADDR
// weap = [ ru_gun , ru_gun , ru_gun ] [ Difficulty ] ;
11000: LD_ADDR_VAR 0 6
11004: PUSH
11005: LD_INT 44
11007: PUSH
11008: LD_INT 44
11010: PUSH
11011: LD_INT 44
11013: PUSH
11014: EMPTY
11015: LIST
11016: LIST
11017: LIST
11018: PUSH
11019: LD_OWVAR 67
11023: ARRAY
11024: ST_TO_ADDR
// l = 0 ;
11025: LD_ADDR_VAR 0 7
11029: PUSH
11030: LD_INT 0
11032: ST_TO_ADDR
// hc_importance = 0 ;
11033: LD_ADDR_OWVAR 32
11037: PUSH
11038: LD_INT 0
11040: ST_TO_ADDR
// repeat vc_chassis = Chasis ;
11041: LD_ADDR_OWVAR 37
11045: PUSH
11046: LD_VAR 0 5
11050: ST_TO_ADDR
// vc_engine = engine_combustion ;
11051: LD_ADDR_OWVAR 39
11055: PUSH
11056: LD_INT 1
11058: ST_TO_ADDR
// vc_control = control_manual ;
11059: LD_ADDR_OWVAR 38
11063: PUSH
11064: LD_INT 1
11066: ST_TO_ADDR
// vc_weapon = ru_gun ;
11067: LD_ADDR_OWVAR 40
11071: PUSH
11072: LD_INT 44
11074: ST_TO_ADDR
// hc_class = 3 ;
11075: LD_ADDR_OWVAR 28
11079: PUSH
11080: LD_INT 3
11082: ST_TO_ADDR
// hc_name =  ;
11083: LD_ADDR_OWVAR 26
11087: PUSH
11088: LD_STRING 
11090: ST_TO_ADDR
// uc_side = 6 ;
11091: LD_ADDR_OWVAR 20
11095: PUSH
11096: LD_INT 6
11098: ST_TO_ADDR
// uc_nation = 3 ;
11099: LD_ADDR_OWVAR 21
11103: PUSH
11104: LD_INT 3
11106: ST_TO_ADDR
// hc_gallery =  ;
11107: LD_ADDR_OWVAR 33
11111: PUSH
11112: LD_STRING 
11114: ST_TO_ADDR
// hc_sex = sex_male ;
11115: LD_ADDR_OWVAR 27
11119: PUSH
11120: LD_INT 1
11122: ST_TO_ADDR
// ve = CreateVehicle ;
11123: LD_ADDR_VAR 0 4
11127: PUSH
11128: CALL_OW 45
11132: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 4 ) , Rand ( 2 , 4 ) , Level , Rand ( 0 , 2 ) ] ;
11133: LD_ADDR_OWVAR 31
11137: PUSH
11138: LD_INT 0
11140: PPUSH
11141: LD_INT 4
11143: PPUSH
11144: CALL_OW 12
11148: PUSH
11149: LD_INT 2
11151: PPUSH
11152: LD_INT 4
11154: PPUSH
11155: CALL_OW 12
11159: PUSH
11160: LD_VAR 0 2
11164: PUSH
11165: LD_INT 0
11167: PPUSH
11168: LD_INT 2
11170: PPUSH
11171: CALL_OW 12
11175: PUSH
11176: EMPTY
11177: LIST
11178: LIST
11179: LIST
11180: LIST
11181: ST_TO_ADDR
// un = CreateHuman ;
11182: LD_ADDR_VAR 0 3
11186: PUSH
11187: CALL_OW 44
11191: ST_TO_ADDR
// PlaceHumanInUnit ( un , ve ) ;
11192: LD_VAR 0 3
11196: PPUSH
11197: LD_VAR 0 4
11201: PPUSH
11202: CALL_OW 52
// PlaceUnitArea ( ve , Ru6repair , false ) ;
11206: LD_VAR 0 4
11210: PPUSH
11211: LD_INT 13
11213: PPUSH
11214: LD_INT 0
11216: PPUSH
11217: CALL_OW 49
// l = l + 1 ;
11221: LD_ADDR_VAR 0 7
11225: PUSH
11226: LD_VAR 0 7
11230: PUSH
11231: LD_INT 1
11233: PLUS
11234: ST_TO_ADDR
// until l = 2 ;
11235: LD_VAR 0 7
11239: PUSH
11240: LD_INT 2
11242: EQUAL
11243: IFFALSE 11041
// if Difficulty = 1 then
11245: LD_OWVAR 67
11249: PUSH
11250: LD_INT 1
11252: EQUAL
11253: IFFALSE 11265
// begin vc_chassis = ru_medium_wheeled ;
11255: LD_ADDR_OWVAR 37
11259: PUSH
11260: LD_INT 21
11262: ST_TO_ADDR
// end else
11263: GO 11273
// begin vc_chassis = ru_medium_tracked ;
11265: LD_ADDR_OWVAR 37
11269: PUSH
11270: LD_INT 22
11272: ST_TO_ADDR
// end ; vc_engine = engine_combustion ;
11273: LD_ADDR_OWVAR 39
11277: PUSH
11278: LD_INT 1
11280: ST_TO_ADDR
// vc_control = control_manual ;
11281: LD_ADDR_OWVAR 38
11285: PUSH
11286: LD_INT 1
11288: ST_TO_ADDR
// vc_weapon = ru_rocket_launcher ;
11289: LD_ADDR_OWVAR 40
11293: PUSH
11294: LD_INT 45
11296: ST_TO_ADDR
// hc_class = 3 ;
11297: LD_ADDR_OWVAR 28
11301: PUSH
11302: LD_INT 3
11304: ST_TO_ADDR
// hc_name =  ;
11305: LD_ADDR_OWVAR 26
11309: PUSH
11310: LD_STRING 
11312: ST_TO_ADDR
// uc_side = 6 ;
11313: LD_ADDR_OWVAR 20
11317: PUSH
11318: LD_INT 6
11320: ST_TO_ADDR
// uc_nation = 3 ;
11321: LD_ADDR_OWVAR 21
11325: PUSH
11326: LD_INT 3
11328: ST_TO_ADDR
// hc_gallery =  ;
11329: LD_ADDR_OWVAR 33
11333: PUSH
11334: LD_STRING 
11336: ST_TO_ADDR
// hc_sex = sex_male ;
11337: LD_ADDR_OWVAR 27
11341: PUSH
11342: LD_INT 1
11344: ST_TO_ADDR
// ve = CreateVehicle ;
11345: LD_ADDR_VAR 0 4
11349: PUSH
11350: CALL_OW 45
11354: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 4 ) , Rand ( 2 , 4 ) , Level , Rand ( 0 , 2 ) ] ;
11355: LD_ADDR_OWVAR 31
11359: PUSH
11360: LD_INT 0
11362: PPUSH
11363: LD_INT 4
11365: PPUSH
11366: CALL_OW 12
11370: PUSH
11371: LD_INT 2
11373: PPUSH
11374: LD_INT 4
11376: PPUSH
11377: CALL_OW 12
11381: PUSH
11382: LD_VAR 0 2
11386: PUSH
11387: LD_INT 0
11389: PPUSH
11390: LD_INT 2
11392: PPUSH
11393: CALL_OW 12
11397: PUSH
11398: EMPTY
11399: LIST
11400: LIST
11401: LIST
11402: LIST
11403: ST_TO_ADDR
// un = CreateHuman ;
11404: LD_ADDR_VAR 0 3
11408: PUSH
11409: CALL_OW 44
11413: ST_TO_ADDR
// PlaceHumanInUnit ( un , ve ) ;
11414: LD_VAR 0 3
11418: PPUSH
11419: LD_VAR 0 4
11423: PPUSH
11424: CALL_OW 52
// PlaceUnitArea ( ve , Ru6repair , false ) ;
11428: LD_VAR 0 4
11432: PPUSH
11433: LD_INT 13
11435: PPUSH
11436: LD_INT 0
11438: PPUSH
11439: CALL_OW 49
// end ;
11443: PPOPN 7
11445: END
// every 0 0$01 marked 65 do
11446: GO 11448
11448: DISABLE
// begin enable ;
11449: ENABLE
// if FilterAllUnits ( [ [ f_side , 6 ] , [ f_control , Control_Computer ] ] ) = 4 then
11450: LD_INT 22
11452: PUSH
11453: LD_INT 6
11455: PUSH
11456: EMPTY
11457: LIST
11458: LIST
11459: PUSH
11460: LD_INT 33
11462: PUSH
11463: LD_INT 3
11465: PUSH
11466: EMPTY
11467: LIST
11468: LIST
11469: PUSH
11470: EMPTY
11471: LIST
11472: LIST
11473: PPUSH
11474: CALL_OW 69
11478: PUSH
11479: LD_INT 4
11481: EQUAL
11482: IFFALSE 11492
// begin enable ( 61 ) ;
11484: LD_INT 61
11486: ENABLE_MARKED
// disable ( 62 ) ;
11487: LD_INT 62
11489: DISABLE_MARKED
// end else
11490: GO 11535
// if FilterAllUnits ( [ [ f_side , 6 ] , [ f_control , Control_Computer ] ] ) = 0 then
11492: LD_INT 22
11494: PUSH
11495: LD_INT 6
11497: PUSH
11498: EMPTY
11499: LIST
11500: LIST
11501: PUSH
11502: LD_INT 33
11504: PUSH
11505: LD_INT 3
11507: PUSH
11508: EMPTY
11509: LIST
11510: LIST
11511: PUSH
11512: EMPTY
11513: LIST
11514: LIST
11515: PPUSH
11516: CALL_OW 69
11520: PUSH
11521: LD_INT 0
11523: EQUAL
11524: IFFALSE 11535
// begin disable ( 61 ) ;
11526: LD_INT 61
11528: DISABLE_MARKED
// enable ( 62 ) ;
11529: LD_INT 62
11531: ENABLE_MARKED
// enable ( 66 ) ;
11532: LD_INT 66
11534: ENABLE_MARKED
// end ; end ;
11535: END
// every 0 0$2 marked 62 do var pojazdy , Mech , i ;
11536: GO 11538
11538: DISABLE
11539: LD_INT 0
11541: PPUSH
11542: PPUSH
11543: PPUSH
// begin pojazdy = FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_manual ] ] ) ;
11544: LD_ADDR_VAR 0 1
11548: PUSH
11549: LD_INT 22
11551: PUSH
11552: LD_INT 6
11554: PUSH
11555: EMPTY
11556: LIST
11557: LIST
11558: PUSH
11559: LD_INT 21
11561: PUSH
11562: LD_INT 2
11564: PUSH
11565: EMPTY
11566: LIST
11567: LIST
11568: PUSH
11569: LD_INT 33
11571: PUSH
11572: LD_INT 1
11574: PUSH
11575: EMPTY
11576: LIST
11577: LIST
11578: PUSH
11579: EMPTY
11580: LIST
11581: LIST
11582: LIST
11583: PPUSH
11584: CALL_OW 69
11588: ST_TO_ADDR
// for i in pojazdy do
11589: LD_ADDR_VAR 0 3
11593: PUSH
11594: LD_VAR 0 1
11598: PUSH
11599: FOR_IN
11600: IFFALSE 11718
// begin if GetLives ( i ) < 999 then
11602: LD_VAR 0 3
11606: PPUSH
11607: CALL_OW 256
11611: PUSH
11612: LD_INT 999
11614: LESS
11615: IFFALSE 11704
// begin Mech := IsDrivenBy ( i ) ;
11617: LD_ADDR_VAR 0 2
11621: PUSH
11622: LD_VAR 0 3
11626: PPUSH
11627: CALL_OW 311
11631: ST_TO_ADDR
// comMoveToArea ( i , Ru6repair ) ;
11632: LD_VAR 0 3
11636: PPUSH
11637: LD_INT 13
11639: PPUSH
11640: CALL_OW 113
// Wait ( 0 0$1 ) ;
11644: LD_INT 35
11646: PPUSH
11647: CALL_OW 67
// AddComExitVehicle ( Mech ) ;
11651: LD_VAR 0 2
11655: PPUSH
11656: CALL_OW 181
// Wait ( 0 0$1 ) ;
11660: LD_INT 35
11662: PPUSH
11663: CALL_OW 67
// AddComRepairVehicle ( Mech , i ) ;
11667: LD_VAR 0 2
11671: PPUSH
11672: LD_VAR 0 3
11676: PPUSH
11677: CALL_OW 189
// Wait ( 0 0$1 ) ;
11681: LD_INT 35
11683: PPUSH
11684: CALL_OW 67
// AddComEnterUnit ( Mech , i ) ;
11688: LD_VAR 0 2
11692: PPUSH
11693: LD_VAR 0 3
11697: PPUSH
11698: CALL_OW 180
// end else
11702: GO 11716
// begin comMoveToArea ( i , Ru6repair ) ;
11704: LD_VAR 0 3
11708: PPUSH
11709: LD_INT 13
11711: PPUSH
11712: CALL_OW 113
// end ; end ;
11716: GO 11599
11718: POP
11719: POP
// disable ;
11720: DISABLE
// end ;
11721: PPOPN 3
11723: END
// every 0 0$01 marked 61 do var i , atakujacy , broniacy , Mech ;
11724: GO 11726
11726: DISABLE
11727: LD_INT 0
11729: PPUSH
11730: PPUSH
11731: PPUSH
11732: PPUSH
// begin enable ;
11733: ENABLE
// broniacy = FilterAllUnits ( [ f_side , 4 ] ) ;
11734: LD_ADDR_VAR 0 3
11738: PUSH
11739: LD_INT 22
11741: PUSH
11742: LD_INT 4
11744: PUSH
11745: EMPTY
11746: LIST
11747: LIST
11748: PPUSH
11749: CALL_OW 69
11753: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_manual ] ] ) ;
11754: LD_ADDR_VAR 0 2
11758: PUSH
11759: LD_INT 22
11761: PUSH
11762: LD_INT 6
11764: PUSH
11765: EMPTY
11766: LIST
11767: LIST
11768: PUSH
11769: LD_INT 21
11771: PUSH
11772: LD_INT 2
11774: PUSH
11775: EMPTY
11776: LIST
11777: LIST
11778: PUSH
11779: LD_INT 33
11781: PUSH
11782: LD_INT 1
11784: PUSH
11785: EMPTY
11786: LIST
11787: LIST
11788: PUSH
11789: EMPTY
11790: LIST
11791: LIST
11792: LIST
11793: PPUSH
11794: CALL_OW 69
11798: ST_TO_ADDR
// for i in atakujacy do
11799: LD_ADDR_VAR 0 1
11803: PUSH
11804: LD_VAR 0 2
11808: PUSH
11809: FOR_IN
11810: IFFALSE 11952
// begin if GetLives ( i ) < 600 then
11812: LD_VAR 0 1
11816: PPUSH
11817: CALL_OW 256
11821: PUSH
11822: LD_INT 600
11824: LESS
11825: IFFALSE 11914
// begin Mech := IsDrivenBy ( i ) ;
11827: LD_ADDR_VAR 0 4
11831: PUSH
11832: LD_VAR 0 1
11836: PPUSH
11837: CALL_OW 311
11841: ST_TO_ADDR
// ComMoveToArea ( i , Ru6repair ) ;
11842: LD_VAR 0 1
11846: PPUSH
11847: LD_INT 13
11849: PPUSH
11850: CALL_OW 113
// Wait ( 0 0$1 ) ;
11854: LD_INT 35
11856: PPUSH
11857: CALL_OW 67
// AddComExitVehicle ( Mech ) ;
11861: LD_VAR 0 4
11865: PPUSH
11866: CALL_OW 181
// Wait ( 0 0$1 ) ;
11870: LD_INT 35
11872: PPUSH
11873: CALL_OW 67
// AddComRepairVehicle ( Mech , i ) ;
11877: LD_VAR 0 4
11881: PPUSH
11882: LD_VAR 0 1
11886: PPUSH
11887: CALL_OW 189
// Wait ( 0 0$1 ) ;
11891: LD_INT 35
11893: PPUSH
11894: CALL_OW 67
// AddComEnterUnit ( Mech , i ) ;
11898: LD_VAR 0 4
11902: PPUSH
11903: LD_VAR 0 1
11907: PPUSH
11908: CALL_OW 180
// end else
11912: GO 11938
// ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
11914: LD_VAR 0 1
11918: PPUSH
11919: LD_VAR 0 3
11923: PPUSH
11924: LD_VAR 0 1
11928: PPUSH
11929: CALL_OW 74
11933: PPUSH
11934: CALL_OW 115
// setFuel ( i , 100 ) ;
11938: LD_VAR 0 1
11942: PPUSH
11943: LD_INT 100
11945: PPUSH
11946: CALL_OW 240
// end ;
11950: GO 11809
11952: POP
11953: POP
// end ;
11954: PPOPN 4
11956: END
// every 0 0$02 do var i , atakujacy , broniacy ;
11957: GO 11959
11959: DISABLE
11960: LD_INT 0
11962: PPUSH
11963: PPUSH
11964: PPUSH
// begin enable ;
11965: ENABLE
// broniacy = FilterAllUnits ( [ f_side , 4 ] ) ;
11966: LD_ADDR_VAR 0 3
11970: PUSH
11971: LD_INT 22
11973: PUSH
11974: LD_INT 4
11976: PUSH
11977: EMPTY
11978: LIST
11979: LIST
11980: PPUSH
11981: CALL_OW 69
11985: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ [ f_side , 5 ] , [ f_type , unit_vehicle ] , [ f_control , Control_computer ] ] ) ^ RussianPersonel ;
11986: LD_ADDR_VAR 0 2
11990: PUSH
11991: LD_INT 22
11993: PUSH
11994: LD_INT 5
11996: PUSH
11997: EMPTY
11998: LIST
11999: LIST
12000: PUSH
12001: LD_INT 21
12003: PUSH
12004: LD_INT 2
12006: PUSH
12007: EMPTY
12008: LIST
12009: LIST
12010: PUSH
12011: LD_INT 33
12013: PUSH
12014: LD_INT 3
12016: PUSH
12017: EMPTY
12018: LIST
12019: LIST
12020: PUSH
12021: EMPTY
12022: LIST
12023: LIST
12024: LIST
12025: PPUSH
12026: CALL_OW 69
12030: PUSH
12031: LD_EXP 16
12035: ADD
12036: ST_TO_ADDR
// for i in atakujacy do
12037: LD_ADDR_VAR 0 1
12041: PUSH
12042: LD_VAR 0 2
12046: PUSH
12047: FOR_IN
12048: IFFALSE 12088
// begin ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
12050: LD_VAR 0 1
12054: PPUSH
12055: LD_VAR 0 3
12059: PPUSH
12060: LD_VAR 0 1
12064: PPUSH
12065: CALL_OW 74
12069: PPUSH
12070: CALL_OW 115
// setFuel ( i , 100 ) ;
12074: LD_VAR 0 1
12078: PPUSH
12079: LD_INT 100
12081: PPUSH
12082: CALL_OW 240
// end ;
12086: GO 12047
12088: POP
12089: POP
// end ;
12090: PPOPN 3
12092: END
// every 0 0$01 do var MechList , Level , un , ve , Chasis , weap , l ;
12093: GO 12095
12095: DISABLE
12096: LD_INT 0
12098: PPUSH
12099: PPUSH
12100: PPUSH
12101: PPUSH
12102: PPUSH
12103: PPUSH
12104: PPUSH
// begin Level = [ 5 , 6 , 7 ] [ Difficulty ] ;
12105: LD_ADDR_VAR 0 2
12109: PUSH
12110: LD_INT 5
12112: PUSH
12113: LD_INT 6
12115: PUSH
12116: LD_INT 7
12118: PUSH
12119: EMPTY
12120: LIST
12121: LIST
12122: LIST
12123: PUSH
12124: LD_OWVAR 67
12128: ARRAY
12129: ST_TO_ADDR
// Chasis = [ ru_medium_wheeled , ru_medium_tracked , ru_heavy_wheeled ] [ Difficulty ] ;
12130: LD_ADDR_VAR 0 5
12134: PUSH
12135: LD_INT 21
12137: PUSH
12138: LD_INT 22
12140: PUSH
12141: LD_INT 23
12143: PUSH
12144: EMPTY
12145: LIST
12146: LIST
12147: LIST
12148: PUSH
12149: LD_OWVAR 67
12153: ARRAY
12154: ST_TO_ADDR
// weap = [ ru_gun , ru_gun , ru_gun ] [ Difficulty ] ;
12155: LD_ADDR_VAR 0 6
12159: PUSH
12160: LD_INT 44
12162: PUSH
12163: LD_INT 44
12165: PUSH
12166: LD_INT 44
12168: PUSH
12169: EMPTY
12170: LIST
12171: LIST
12172: LIST
12173: PUSH
12174: LD_OWVAR 67
12178: ARRAY
12179: ST_TO_ADDR
// l = 0 ;
12180: LD_ADDR_VAR 0 7
12184: PUSH
12185: LD_INT 0
12187: ST_TO_ADDR
// hc_importance = 0 ;
12188: LD_ADDR_OWVAR 32
12192: PUSH
12193: LD_INT 0
12195: ST_TO_ADDR
// repeat vc_chassis = Chasis ;
12196: LD_ADDR_OWVAR 37
12200: PUSH
12201: LD_VAR 0 5
12205: ST_TO_ADDR
// vc_engine = engine_combustion ;
12206: LD_ADDR_OWVAR 39
12210: PUSH
12211: LD_INT 1
12213: ST_TO_ADDR
// vc_control = control_manual ;
12214: LD_ADDR_OWVAR 38
12218: PUSH
12219: LD_INT 1
12221: ST_TO_ADDR
// if l = 1 then
12222: LD_VAR 0 7
12226: PUSH
12227: LD_INT 1
12229: EQUAL
12230: IFFALSE 12244
// begin vc_weapon = weap ;
12232: LD_ADDR_OWVAR 40
12236: PUSH
12237: LD_VAR 0 6
12241: ST_TO_ADDR
// end else
12242: GO 12252
// begin vc_weapon = ru_gun ;
12244: LD_ADDR_OWVAR 40
12248: PUSH
12249: LD_INT 44
12251: ST_TO_ADDR
// end ; hc_class = 3 ;
12252: LD_ADDR_OWVAR 28
12256: PUSH
12257: LD_INT 3
12259: ST_TO_ADDR
// hc_name =  ;
12260: LD_ADDR_OWVAR 26
12264: PUSH
12265: LD_STRING 
12267: ST_TO_ADDR
// uc_side = 3 ;
12268: LD_ADDR_OWVAR 20
12272: PUSH
12273: LD_INT 3
12275: ST_TO_ADDR
// uc_nation = 3 ;
12276: LD_ADDR_OWVAR 21
12280: PUSH
12281: LD_INT 3
12283: ST_TO_ADDR
// hc_gallery =  ;
12284: LD_ADDR_OWVAR 33
12288: PUSH
12289: LD_STRING 
12291: ST_TO_ADDR
// hc_sex = sex_male ;
12292: LD_ADDR_OWVAR 27
12296: PUSH
12297: LD_INT 1
12299: ST_TO_ADDR
// ve = CreateVehicle ;
12300: LD_ADDR_VAR 0 4
12304: PUSH
12305: CALL_OW 45
12309: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 4 ) , Rand ( 2 , 4 ) , Level , Rand ( 0 , 2 ) ] ;
12310: LD_ADDR_OWVAR 31
12314: PUSH
12315: LD_INT 0
12317: PPUSH
12318: LD_INT 4
12320: PPUSH
12321: CALL_OW 12
12325: PUSH
12326: LD_INT 2
12328: PPUSH
12329: LD_INT 4
12331: PPUSH
12332: CALL_OW 12
12336: PUSH
12337: LD_VAR 0 2
12341: PUSH
12342: LD_INT 0
12344: PPUSH
12345: LD_INT 2
12347: PPUSH
12348: CALL_OW 12
12352: PUSH
12353: EMPTY
12354: LIST
12355: LIST
12356: LIST
12357: LIST
12358: ST_TO_ADDR
// un = CreateHuman ;
12359: LD_ADDR_VAR 0 3
12363: PUSH
12364: CALL_OW 44
12368: ST_TO_ADDR
// PlaceHumanInUnit ( un , ve ) ;
12369: LD_VAR 0 3
12373: PPUSH
12374: LD_VAR 0 4
12378: PPUSH
12379: CALL_OW 52
// PlaceUnitArea ( ve , Ru3repair , false ) ;
12383: LD_VAR 0 4
12387: PPUSH
12388: LD_INT 14
12390: PPUSH
12391: LD_INT 0
12393: PPUSH
12394: CALL_OW 49
// l = l + 1 ;
12398: LD_ADDR_VAR 0 7
12402: PUSH
12403: LD_VAR 0 7
12407: PUSH
12408: LD_INT 1
12410: PLUS
12411: ST_TO_ADDR
// until l = 2 ;
12412: LD_VAR 0 7
12416: PUSH
12417: LD_INT 2
12419: EQUAL
12420: IFFALSE 12196
// if Difficulty = 3 then
12422: LD_OWVAR 67
12426: PUSH
12427: LD_INT 3
12429: EQUAL
12430: IFFALSE 12442
// begin vc_chassis = ru_heavy_tracked ;
12432: LD_ADDR_OWVAR 37
12436: PUSH
12437: LD_INT 24
12439: ST_TO_ADDR
// end else
12440: GO 12450
// begin vc_chassis = ru_medium_tracked ;
12442: LD_ADDR_OWVAR 37
12446: PUSH
12447: LD_INT 22
12449: ST_TO_ADDR
// end ; vc_engine = engine_combustion ;
12450: LD_ADDR_OWVAR 39
12454: PUSH
12455: LD_INT 1
12457: ST_TO_ADDR
// vc_control = control_manual ;
12458: LD_ADDR_OWVAR 38
12462: PUSH
12463: LD_INT 1
12465: ST_TO_ADDR
// vc_weapon = ru_rocket_launcher ;
12466: LD_ADDR_OWVAR 40
12470: PUSH
12471: LD_INT 45
12473: ST_TO_ADDR
// hc_class = 3 ;
12474: LD_ADDR_OWVAR 28
12478: PUSH
12479: LD_INT 3
12481: ST_TO_ADDR
// hc_name =  ;
12482: LD_ADDR_OWVAR 26
12486: PUSH
12487: LD_STRING 
12489: ST_TO_ADDR
// uc_side = 3 ;
12490: LD_ADDR_OWVAR 20
12494: PUSH
12495: LD_INT 3
12497: ST_TO_ADDR
// uc_nation = 3 ;
12498: LD_ADDR_OWVAR 21
12502: PUSH
12503: LD_INT 3
12505: ST_TO_ADDR
// hc_gallery =  ;
12506: LD_ADDR_OWVAR 33
12510: PUSH
12511: LD_STRING 
12513: ST_TO_ADDR
// hc_sex = sex_male ;
12514: LD_ADDR_OWVAR 27
12518: PUSH
12519: LD_INT 1
12521: ST_TO_ADDR
// ve = CreateVehicle ;
12522: LD_ADDR_VAR 0 4
12526: PUSH
12527: CALL_OW 45
12531: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 2 , 4 ) , Level , Rand ( 0 , 2 ) ] ;
12532: LD_ADDR_OWVAR 31
12536: PUSH
12537: LD_INT 0
12539: PPUSH
12540: LD_INT 3
12542: PPUSH
12543: CALL_OW 12
12547: PUSH
12548: LD_INT 2
12550: PPUSH
12551: LD_INT 4
12553: PPUSH
12554: CALL_OW 12
12558: PUSH
12559: LD_VAR 0 2
12563: PUSH
12564: LD_INT 0
12566: PPUSH
12567: LD_INT 2
12569: PPUSH
12570: CALL_OW 12
12574: PUSH
12575: EMPTY
12576: LIST
12577: LIST
12578: LIST
12579: LIST
12580: ST_TO_ADDR
// un = CreateHuman ;
12581: LD_ADDR_VAR 0 3
12585: PUSH
12586: CALL_OW 44
12590: ST_TO_ADDR
// PlaceHumanInUnit ( un , ve ) ;
12591: LD_VAR 0 3
12595: PPUSH
12596: LD_VAR 0 4
12600: PPUSH
12601: CALL_OW 52
// PlaceUnitArea ( ve , Ru3repair , false ) ;
12605: LD_VAR 0 4
12609: PPUSH
12610: LD_INT 14
12612: PPUSH
12613: LD_INT 0
12615: PPUSH
12616: CALL_OW 49
// end ;
12620: PPOPN 7
12622: END
// every 0 0$01 do
12623: GO 12625
12625: DISABLE
// begin enable ;
12626: ENABLE
// if FilterAllUnits ( [ [ f_side , 3 ] , [ f_control , Control_Computer ] ] ) = 4 then
12627: LD_INT 22
12629: PUSH
12630: LD_INT 3
12632: PUSH
12633: EMPTY
12634: LIST
12635: LIST
12636: PUSH
12637: LD_INT 33
12639: PUSH
12640: LD_INT 3
12642: PUSH
12643: EMPTY
12644: LIST
12645: LIST
12646: PUSH
12647: EMPTY
12648: LIST
12649: LIST
12650: PPUSH
12651: CALL_OW 69
12655: PUSH
12656: LD_INT 4
12658: EQUAL
12659: IFFALSE 12669
// begin enable ( 31 ) ;
12661: LD_INT 31
12663: ENABLE_MARKED
// disable ( 32 ) ;
12664: LD_INT 32
12666: DISABLE_MARKED
// end else
12667: GO 12712
// if FilterAllUnits ( [ [ f_side , 3 ] , [ f_control , Control_Computer ] ] ) = 0 then
12669: LD_INT 22
12671: PUSH
12672: LD_INT 3
12674: PUSH
12675: EMPTY
12676: LIST
12677: LIST
12678: PUSH
12679: LD_INT 33
12681: PUSH
12682: LD_INT 3
12684: PUSH
12685: EMPTY
12686: LIST
12687: LIST
12688: PUSH
12689: EMPTY
12690: LIST
12691: LIST
12692: PPUSH
12693: CALL_OW 69
12697: PUSH
12698: LD_INT 0
12700: EQUAL
12701: IFFALSE 12712
// begin disable ( 31 ) ;
12703: LD_INT 31
12705: DISABLE_MARKED
// enable ( 32 ) ;
12706: LD_INT 32
12708: ENABLE_MARKED
// enable ( 36 ) ;
12709: LD_INT 36
12711: ENABLE_MARKED
// end ; end ;
12712: END
// every 0 0$2 marked 32 do var pojazdy , Mech , i ;
12713: GO 12715
12715: DISABLE
12716: LD_INT 0
12718: PPUSH
12719: PPUSH
12720: PPUSH
// begin pojazdy = FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , Control_manual ] ] ) ;
12721: LD_ADDR_VAR 0 1
12725: PUSH
12726: LD_INT 22
12728: PUSH
12729: LD_INT 3
12731: PUSH
12732: EMPTY
12733: LIST
12734: LIST
12735: PUSH
12736: LD_INT 21
12738: PUSH
12739: LD_INT 2
12741: PUSH
12742: EMPTY
12743: LIST
12744: LIST
12745: PUSH
12746: LD_INT 33
12748: PUSH
12749: LD_INT 1
12751: PUSH
12752: EMPTY
12753: LIST
12754: LIST
12755: PUSH
12756: EMPTY
12757: LIST
12758: LIST
12759: LIST
12760: PPUSH
12761: CALL_OW 69
12765: ST_TO_ADDR
// for i in pojazdy do
12766: LD_ADDR_VAR 0 3
12770: PUSH
12771: LD_VAR 0 1
12775: PUSH
12776: FOR_IN
12777: IFFALSE 12895
// begin if GetLives ( i ) < 999 then
12779: LD_VAR 0 3
12783: PPUSH
12784: CALL_OW 256
12788: PUSH
12789: LD_INT 999
12791: LESS
12792: IFFALSE 12881
// begin Mech := IsDrivenBy ( i ) ;
12794: LD_ADDR_VAR 0 2
12798: PUSH
12799: LD_VAR 0 3
12803: PPUSH
12804: CALL_OW 311
12808: ST_TO_ADDR
// comMoveToArea ( i , Ru3repair ) ;
12809: LD_VAR 0 3
12813: PPUSH
12814: LD_INT 14
12816: PPUSH
12817: CALL_OW 113
// Wait ( 0 0$1 ) ;
12821: LD_INT 35
12823: PPUSH
12824: CALL_OW 67
// AddComExitVehicle ( Mech ) ;
12828: LD_VAR 0 2
12832: PPUSH
12833: CALL_OW 181
// Wait ( 0 0$1 ) ;
12837: LD_INT 35
12839: PPUSH
12840: CALL_OW 67
// AddComRepairVehicle ( Mech , i ) ;
12844: LD_VAR 0 2
12848: PPUSH
12849: LD_VAR 0 3
12853: PPUSH
12854: CALL_OW 189
// Wait ( 0 0$1 ) ;
12858: LD_INT 35
12860: PPUSH
12861: CALL_OW 67
// AddComEnterUnit ( Mech , i ) ;
12865: LD_VAR 0 2
12869: PPUSH
12870: LD_VAR 0 3
12874: PPUSH
12875: CALL_OW 180
// end else
12879: GO 12893
// begin comMoveToArea ( i , Ru3repair ) ;
12881: LD_VAR 0 3
12885: PPUSH
12886: LD_INT 14
12888: PPUSH
12889: CALL_OW 113
// end ; end ;
12893: GO 12776
12895: POP
12896: POP
// disable ;
12897: DISABLE
// end ;
12898: PPOPN 3
12900: END
// every 0 0$01 marked 31 do var i , atakujacy , broniacy , Mech ;
12901: GO 12903
12903: DISABLE
12904: LD_INT 0
12906: PPUSH
12907: PPUSH
12908: PPUSH
12909: PPUSH
// begin enable ;
12910: ENABLE
// broniacy = FilterAllUnits ( [ f_side , 4 ] ) ;
12911: LD_ADDR_VAR 0 3
12915: PUSH
12916: LD_INT 22
12918: PUSH
12919: LD_INT 4
12921: PUSH
12922: EMPTY
12923: LIST
12924: LIST
12925: PPUSH
12926: CALL_OW 69
12930: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , Control_manual ] ] ) ;
12931: LD_ADDR_VAR 0 2
12935: PUSH
12936: LD_INT 22
12938: PUSH
12939: LD_INT 3
12941: PUSH
12942: EMPTY
12943: LIST
12944: LIST
12945: PUSH
12946: LD_INT 21
12948: PUSH
12949: LD_INT 2
12951: PUSH
12952: EMPTY
12953: LIST
12954: LIST
12955: PUSH
12956: LD_INT 33
12958: PUSH
12959: LD_INT 1
12961: PUSH
12962: EMPTY
12963: LIST
12964: LIST
12965: PUSH
12966: EMPTY
12967: LIST
12968: LIST
12969: LIST
12970: PPUSH
12971: CALL_OW 69
12975: ST_TO_ADDR
// for i in atakujacy do
12976: LD_ADDR_VAR 0 1
12980: PUSH
12981: LD_VAR 0 2
12985: PUSH
12986: FOR_IN
12987: IFFALSE 13129
// begin if GetLives ( i ) < 600 then
12989: LD_VAR 0 1
12993: PPUSH
12994: CALL_OW 256
12998: PUSH
12999: LD_INT 600
13001: LESS
13002: IFFALSE 13091
// begin Mech := IsDrivenBy ( i ) ;
13004: LD_ADDR_VAR 0 4
13008: PUSH
13009: LD_VAR 0 1
13013: PPUSH
13014: CALL_OW 311
13018: ST_TO_ADDR
// ComMoveToArea ( i , Ru3repair ) ;
13019: LD_VAR 0 1
13023: PPUSH
13024: LD_INT 14
13026: PPUSH
13027: CALL_OW 113
// Wait ( 0 0$1 ) ;
13031: LD_INT 35
13033: PPUSH
13034: CALL_OW 67
// AddComExitVehicle ( Mech ) ;
13038: LD_VAR 0 4
13042: PPUSH
13043: CALL_OW 181
// Wait ( 0 0$1 ) ;
13047: LD_INT 35
13049: PPUSH
13050: CALL_OW 67
// AddComRepairVehicle ( Mech , i ) ;
13054: LD_VAR 0 4
13058: PPUSH
13059: LD_VAR 0 1
13063: PPUSH
13064: CALL_OW 189
// Wait ( 0 0$1 ) ;
13068: LD_INT 35
13070: PPUSH
13071: CALL_OW 67
// AddComEnterUnit ( Mech , i ) ;
13075: LD_VAR 0 4
13079: PPUSH
13080: LD_VAR 0 1
13084: PPUSH
13085: CALL_OW 180
// end else
13089: GO 13115
// ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
13091: LD_VAR 0 1
13095: PPUSH
13096: LD_VAR 0 3
13100: PPUSH
13101: LD_VAR 0 1
13105: PPUSH
13106: CALL_OW 74
13110: PPUSH
13111: CALL_OW 115
// setFuel ( i , 100 ) ;
13115: LD_VAR 0 1
13119: PPUSH
13120: LD_INT 100
13122: PPUSH
13123: CALL_OW 240
// end ;
13127: GO 12986
13129: POP
13130: POP
// end ; end_of_file
13131: PPOPN 4
13133: END
// export RussianPersonel ; export function EnemyHelp ; var MechList , Level , un , ve , Chasis , weap , l ; begin
13134: LD_INT 0
13136: PPUSH
13137: PPUSH
13138: PPUSH
13139: PPUSH
13140: PPUSH
13141: PPUSH
13142: PPUSH
13143: PPUSH
// Level = [ 5 , 6 , 6 ] [ Difficulty ] ;
13144: LD_ADDR_VAR 0 3
13148: PUSH
13149: LD_INT 5
13151: PUSH
13152: LD_INT 6
13154: PUSH
13155: LD_INT 6
13157: PUSH
13158: EMPTY
13159: LIST
13160: LIST
13161: LIST
13162: PUSH
13163: LD_OWVAR 67
13167: ARRAY
13168: ST_TO_ADDR
// Chasis = [ ru_medium_wheeled , ru_heavy_wheeled , ru_heavy_tracked ] [ Difficulty ] ;
13169: LD_ADDR_VAR 0 6
13173: PUSH
13174: LD_INT 21
13176: PUSH
13177: LD_INT 23
13179: PUSH
13180: LD_INT 24
13182: PUSH
13183: EMPTY
13184: LIST
13185: LIST
13186: LIST
13187: PUSH
13188: LD_OWVAR 67
13192: ARRAY
13193: ST_TO_ADDR
// weap = [ ru_gun , ru_gun , ru_heavy_gun ] [ Difficulty ] ;
13194: LD_ADDR_VAR 0 7
13198: PUSH
13199: LD_INT 44
13201: PUSH
13202: LD_INT 44
13204: PUSH
13205: LD_INT 46
13207: PUSH
13208: EMPTY
13209: LIST
13210: LIST
13211: LIST
13212: PUSH
13213: LD_OWVAR 67
13217: ARRAY
13218: ST_TO_ADDR
// l = 0 ;
13219: LD_ADDR_VAR 0 8
13223: PUSH
13224: LD_INT 0
13226: ST_TO_ADDR
// repeat uc_side = 5 ;
13227: LD_ADDR_OWVAR 20
13231: PUSH
13232: LD_INT 5
13234: ST_TO_ADDR
// vc_chassis = Chasis ;
13235: LD_ADDR_OWVAR 37
13239: PUSH
13240: LD_VAR 0 6
13244: ST_TO_ADDR
// vc_engine = engine_combustion ;
13245: LD_ADDR_OWVAR 39
13249: PUSH
13250: LD_INT 1
13252: ST_TO_ADDR
// vc_control = control_computer ;
13253: LD_ADDR_OWVAR 38
13257: PUSH
13258: LD_INT 3
13260: ST_TO_ADDR
// if l <= 2 then
13261: LD_VAR 0 8
13265: PUSH
13266: LD_INT 2
13268: LESSEQUAL
13269: IFFALSE 13283
// begin vc_weapon = weap ;
13271: LD_ADDR_OWVAR 40
13275: PUSH
13276: LD_VAR 0 7
13280: ST_TO_ADDR
// end else
13281: GO 13291
// begin vc_weapon = ru_gun ;
13283: LD_ADDR_OWVAR 40
13287: PUSH
13288: LD_INT 44
13290: ST_TO_ADDR
// end ; ve = CreateVehicle ;
13291: LD_ADDR_VAR 0 5
13295: PUSH
13296: CALL_OW 45
13300: ST_TO_ADDR
// PlaceUnitArea ( ve , Area10 , false ) ;
13301: LD_VAR 0 5
13305: PPUSH
13306: LD_INT 5
13308: PPUSH
13309: LD_INT 0
13311: PPUSH
13312: CALL_OW 49
// l = l + 1 ;
13316: LD_ADDR_VAR 0 8
13320: PUSH
13321: LD_VAR 0 8
13325: PUSH
13326: LD_INT 1
13328: PLUS
13329: ST_TO_ADDR
// until l = 3 ;
13330: LD_VAR 0 8
13334: PUSH
13335: LD_INT 3
13337: EQUAL
13338: IFFALSE 13227
// l = 0 ;
13340: LD_ADDR_VAR 0 8
13344: PUSH
13345: LD_INT 0
13347: ST_TO_ADDR
// repeat uc_side = 5 ;
13348: LD_ADDR_OWVAR 20
13352: PUSH
13353: LD_INT 5
13355: ST_TO_ADDR
// if Difficulty = 1 then
13356: LD_OWVAR 67
13360: PUSH
13361: LD_INT 1
13363: EQUAL
13364: IFFALSE 13376
// begin vc_chassis = ru_medium_wheeled ;
13366: LD_ADDR_OWVAR 37
13370: PUSH
13371: LD_INT 21
13373: ST_TO_ADDR
// end else
13374: GO 13384
// begin vc_chassis = ru_heavy_wheeled ;
13376: LD_ADDR_OWVAR 37
13380: PUSH
13381: LD_INT 23
13383: ST_TO_ADDR
// end ; vc_engine = engine_combustion ;
13384: LD_ADDR_OWVAR 39
13388: PUSH
13389: LD_INT 1
13391: ST_TO_ADDR
// vc_control = control_computer ;
13392: LD_ADDR_OWVAR 38
13396: PUSH
13397: LD_INT 3
13399: ST_TO_ADDR
// vc_weapon = ru_rocket_launcher ;
13400: LD_ADDR_OWVAR 40
13404: PUSH
13405: LD_INT 45
13407: ST_TO_ADDR
// ve = CreateVehicle ;
13408: LD_ADDR_VAR 0 5
13412: PUSH
13413: CALL_OW 45
13417: ST_TO_ADDR
// PlaceUnitArea ( ve , Area08 , false ) ;
13418: LD_VAR 0 5
13422: PPUSH
13423: LD_INT 3
13425: PPUSH
13426: LD_INT 0
13428: PPUSH
13429: CALL_OW 49
// l = l + 1 ;
13433: LD_ADDR_VAR 0 8
13437: PUSH
13438: LD_VAR 0 8
13442: PUSH
13443: LD_INT 1
13445: PLUS
13446: ST_TO_ADDR
// until l = 2 ;
13447: LD_VAR 0 8
13451: PUSH
13452: LD_INT 2
13454: EQUAL
13455: IFFALSE 13348
// l = 0 ;
13457: LD_ADDR_VAR 0 8
13461: PUSH
13462: LD_INT 0
13464: ST_TO_ADDR
// repeat uc_side = 5 ;
13465: LD_ADDR_OWVAR 20
13469: PUSH
13470: LD_INT 5
13472: ST_TO_ADDR
// uc_nation = 3 ;
13473: LD_ADDR_OWVAR 21
13477: PUSH
13478: LD_INT 3
13480: ST_TO_ADDR
// hc_gallery =  ;
13481: LD_ADDR_OWVAR 33
13485: PUSH
13486: LD_STRING 
13488: ST_TO_ADDR
// hc_name =  ;
13489: LD_ADDR_OWVAR 26
13493: PUSH
13494: LD_STRING 
13496: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
13497: LD_ADDR_OWVAR 29
13501: PUSH
13502: LD_INT 9
13504: PPUSH
13505: LD_INT 11
13507: PPUSH
13508: CALL_OW 12
13512: PUSH
13513: LD_INT 10
13515: PPUSH
13516: LD_INT 12
13518: PPUSH
13519: CALL_OW 12
13523: PUSH
13524: EMPTY
13525: LIST
13526: LIST
13527: ST_TO_ADDR
// hc_skills = [ Level - Rand ( 0 , 1 ) , Rand ( 1 , 3 ) , Rand ( 2 , 4 ) , Rand ( 0 , 4 ) ] ;
13528: LD_ADDR_OWVAR 31
13532: PUSH
13533: LD_VAR 0 3
13537: PUSH
13538: LD_INT 0
13540: PPUSH
13541: LD_INT 1
13543: PPUSH
13544: CALL_OW 12
13548: MINUS
13549: PUSH
13550: LD_INT 1
13552: PPUSH
13553: LD_INT 3
13555: PPUSH
13556: CALL_OW 12
13560: PUSH
13561: LD_INT 2
13563: PPUSH
13564: LD_INT 4
13566: PPUSH
13567: CALL_OW 12
13571: PUSH
13572: LD_INT 0
13574: PPUSH
13575: LD_INT 4
13577: PPUSH
13578: CALL_OW 12
13582: PUSH
13583: EMPTY
13584: LIST
13585: LIST
13586: LIST
13587: LIST
13588: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
13589: LD_ADDR_OWVAR 27
13593: PUSH
13594: LD_INT 1
13596: PPUSH
13597: LD_INT 2
13599: PPUSH
13600: CALL_OW 12
13604: ST_TO_ADDR
// hc_class = 1 ;
13605: LD_ADDR_OWVAR 28
13609: PUSH
13610: LD_INT 1
13612: ST_TO_ADDR
// un = CreateHuman ;
13613: LD_ADDR_VAR 0 4
13617: PUSH
13618: CALL_OW 44
13622: ST_TO_ADDR
// PlaceUnitArea ( un , Area09 , false ) ;
13623: LD_VAR 0 4
13627: PPUSH
13628: LD_INT 4
13630: PPUSH
13631: LD_INT 0
13633: PPUSH
13634: CALL_OW 49
// l = l + 1 ;
13638: LD_ADDR_VAR 0 8
13642: PUSH
13643: LD_VAR 0 8
13647: PUSH
13648: LD_INT 1
13650: PLUS
13651: ST_TO_ADDR
// RussianPersonel = RussianPersonel ^ un ;
13652: LD_ADDR_EXP 16
13656: PUSH
13657: LD_EXP 16
13661: PUSH
13662: LD_VAR 0 4
13666: ADD
13667: ST_TO_ADDR
// until l = [ 4 , 5 , 7 ] [ Difficulty ] end ; end_of_file
13668: LD_VAR 0 8
13672: PUSH
13673: LD_INT 4
13675: PUSH
13676: LD_INT 5
13678: PUSH
13679: LD_INT 7
13681: PUSH
13682: EMPTY
13683: LIST
13684: LIST
13685: LIST
13686: PUSH
13687: LD_OWVAR 67
13691: ARRAY
13692: EQUAL
13693: IFFALSE 13465
13695: LD_VAR 0 1
13699: RET
// every 0 0$01 do
13700: GO 13702
13702: DISABLE
// begin case Difficulty of 1 :
13703: LD_OWVAR 67
13707: PUSH
13708: LD_INT 1
13710: DOUBLE
13711: EQUAL
13712: IFTRUE 13716
13714: GO 13836
13716: POP
// begin SetTech ( 57 , 6 , state_Researched ) ;
13717: LD_INT 57
13719: PPUSH
13720: LD_INT 6
13722: PPUSH
13723: LD_INT 2
13725: PPUSH
13726: CALL_OW 322
// SetTech ( 48 , 6 , state_Researched ) ;
13730: LD_INT 48
13732: PPUSH
13733: LD_INT 6
13735: PPUSH
13736: LD_INT 2
13738: PPUSH
13739: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
13743: LD_INT 51
13745: PPUSH
13746: LD_INT 6
13748: PPUSH
13749: LD_INT 2
13751: PPUSH
13752: CALL_OW 322
// SetTech ( 57 , 3 , state_Researched ) ;
13756: LD_INT 57
13758: PPUSH
13759: LD_INT 3
13761: PPUSH
13762: LD_INT 2
13764: PPUSH
13765: CALL_OW 322
// SetTech ( 48 , 3 , state_Researched ) ;
13769: LD_INT 48
13771: PPUSH
13772: LD_INT 3
13774: PPUSH
13775: LD_INT 2
13777: PPUSH
13778: CALL_OW 322
// SetTech ( 51 , 3 , state_Researched ) ;
13782: LD_INT 51
13784: PPUSH
13785: LD_INT 3
13787: PPUSH
13788: LD_INT 2
13790: PPUSH
13791: CALL_OW 322
// SetTech ( 57 , 5 , state_Researched ) ;
13795: LD_INT 57
13797: PPUSH
13798: LD_INT 5
13800: PPUSH
13801: LD_INT 2
13803: PPUSH
13804: CALL_OW 322
// SetTech ( 48 , 5 , state_Researched ) ;
13808: LD_INT 48
13810: PPUSH
13811: LD_INT 5
13813: PPUSH
13814: LD_INT 2
13816: PPUSH
13817: CALL_OW 322
// SetTech ( 51 , 5 , state_Researched ) ;
13821: LD_INT 51
13823: PPUSH
13824: LD_INT 5
13826: PPUSH
13827: LD_INT 2
13829: PPUSH
13830: CALL_OW 322
// end ; 2 :
13834: GO 14288
13836: LD_INT 2
13838: DOUBLE
13839: EQUAL
13840: IFTRUE 13844
13842: GO 14042
13844: POP
// begin SetTech ( 57 , 6 , state_Researched ) ;
13845: LD_INT 57
13847: PPUSH
13848: LD_INT 6
13850: PPUSH
13851: LD_INT 2
13853: PPUSH
13854: CALL_OW 322
// SetTech ( 48 , 6 , state_Researched ) ;
13858: LD_INT 48
13860: PPUSH
13861: LD_INT 6
13863: PPUSH
13864: LD_INT 2
13866: PPUSH
13867: CALL_OW 322
// SetTech ( 49 , 6 , state_Researched ) ;
13871: LD_INT 49
13873: PPUSH
13874: LD_INT 6
13876: PPUSH
13877: LD_INT 2
13879: PPUSH
13880: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
13884: LD_INT 51
13886: PPUSH
13887: LD_INT 6
13889: PPUSH
13890: LD_INT 2
13892: PPUSH
13893: CALL_OW 322
// SetTech ( 52 , 6 , state_Researched ) ;
13897: LD_INT 52
13899: PPUSH
13900: LD_INT 6
13902: PPUSH
13903: LD_INT 2
13905: PPUSH
13906: CALL_OW 322
// SetTech ( 57 , 3 , state_Researched ) ;
13910: LD_INT 57
13912: PPUSH
13913: LD_INT 3
13915: PPUSH
13916: LD_INT 2
13918: PPUSH
13919: CALL_OW 322
// SetTech ( 48 , 3 , state_Researched ) ;
13923: LD_INT 48
13925: PPUSH
13926: LD_INT 3
13928: PPUSH
13929: LD_INT 2
13931: PPUSH
13932: CALL_OW 322
// SetTech ( 49 , 3 , state_Researched ) ;
13936: LD_INT 49
13938: PPUSH
13939: LD_INT 3
13941: PPUSH
13942: LD_INT 2
13944: PPUSH
13945: CALL_OW 322
// SetTech ( 51 , 3 , state_Researched ) ;
13949: LD_INT 51
13951: PPUSH
13952: LD_INT 3
13954: PPUSH
13955: LD_INT 2
13957: PPUSH
13958: CALL_OW 322
// SetTech ( 52 , 3 , state_Researched ) ;
13962: LD_INT 52
13964: PPUSH
13965: LD_INT 3
13967: PPUSH
13968: LD_INT 2
13970: PPUSH
13971: CALL_OW 322
// SetTech ( 57 , 5 , state_Researched ) ;
13975: LD_INT 57
13977: PPUSH
13978: LD_INT 5
13980: PPUSH
13981: LD_INT 2
13983: PPUSH
13984: CALL_OW 322
// SetTech ( 48 , 5 , state_Researched ) ;
13988: LD_INT 48
13990: PPUSH
13991: LD_INT 5
13993: PPUSH
13994: LD_INT 2
13996: PPUSH
13997: CALL_OW 322
// SetTech ( 49 , 5 , state_Researched ) ;
14001: LD_INT 49
14003: PPUSH
14004: LD_INT 5
14006: PPUSH
14007: LD_INT 2
14009: PPUSH
14010: CALL_OW 322
// SetTech ( 51 , 5 , state_Researched ) ;
14014: LD_INT 51
14016: PPUSH
14017: LD_INT 5
14019: PPUSH
14020: LD_INT 2
14022: PPUSH
14023: CALL_OW 322
// SetTech ( 52 , 5 , state_Researched ) ;
14027: LD_INT 52
14029: PPUSH
14030: LD_INT 5
14032: PPUSH
14033: LD_INT 2
14035: PPUSH
14036: CALL_OW 322
// end ; 3 :
14040: GO 14288
14042: LD_INT 3
14044: DOUBLE
14045: EQUAL
14046: IFTRUE 14050
14048: GO 14287
14050: POP
// begin SetTech ( 57 , 6 , state_Researched ) ;
14051: LD_INT 57
14053: PPUSH
14054: LD_INT 6
14056: PPUSH
14057: LD_INT 2
14059: PPUSH
14060: CALL_OW 322
// SetTech ( 58 , 6 , state_Researched ) ;
14064: LD_INT 58
14066: PPUSH
14067: LD_INT 6
14069: PPUSH
14070: LD_INT 2
14072: PPUSH
14073: CALL_OW 322
// SetTech ( 48 , 6 , state_Researched ) ;
14077: LD_INT 48
14079: PPUSH
14080: LD_INT 6
14082: PPUSH
14083: LD_INT 2
14085: PPUSH
14086: CALL_OW 322
// SetTech ( 49 , 6 , state_Researched ) ;
14090: LD_INT 49
14092: PPUSH
14093: LD_INT 6
14095: PPUSH
14096: LD_INT 2
14098: PPUSH
14099: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
14103: LD_INT 51
14105: PPUSH
14106: LD_INT 6
14108: PPUSH
14109: LD_INT 2
14111: PPUSH
14112: CALL_OW 322
// SetTech ( 52 , 6 , state_Researched ) ;
14116: LD_INT 52
14118: PPUSH
14119: LD_INT 6
14121: PPUSH
14122: LD_INT 2
14124: PPUSH
14125: CALL_OW 322
// SetTech ( 57 , 3 , state_Researched ) ;
14129: LD_INT 57
14131: PPUSH
14132: LD_INT 3
14134: PPUSH
14135: LD_INT 2
14137: PPUSH
14138: CALL_OW 322
// SetTech ( 58 , 3 , state_Researched ) ;
14142: LD_INT 58
14144: PPUSH
14145: LD_INT 3
14147: PPUSH
14148: LD_INT 2
14150: PPUSH
14151: CALL_OW 322
// SetTech ( 48 , 3 , state_Researched ) ;
14155: LD_INT 48
14157: PPUSH
14158: LD_INT 3
14160: PPUSH
14161: LD_INT 2
14163: PPUSH
14164: CALL_OW 322
// SetTech ( 49 , 3 , state_Researched ) ;
14168: LD_INT 49
14170: PPUSH
14171: LD_INT 3
14173: PPUSH
14174: LD_INT 2
14176: PPUSH
14177: CALL_OW 322
// SetTech ( 51 , 3 , state_Researched ) ;
14181: LD_INT 51
14183: PPUSH
14184: LD_INT 3
14186: PPUSH
14187: LD_INT 2
14189: PPUSH
14190: CALL_OW 322
// SetTech ( 52 , 3 , state_Researched ) ;
14194: LD_INT 52
14196: PPUSH
14197: LD_INT 3
14199: PPUSH
14200: LD_INT 2
14202: PPUSH
14203: CALL_OW 322
// SetTech ( 57 , 5 , state_Researched ) ;
14207: LD_INT 57
14209: PPUSH
14210: LD_INT 5
14212: PPUSH
14213: LD_INT 2
14215: PPUSH
14216: CALL_OW 322
// SetTech ( 58 , 5 , state_Researched ) ;
14220: LD_INT 58
14222: PPUSH
14223: LD_INT 5
14225: PPUSH
14226: LD_INT 2
14228: PPUSH
14229: CALL_OW 322
// SetTech ( 48 , 5 , state_Researched ) ;
14233: LD_INT 48
14235: PPUSH
14236: LD_INT 5
14238: PPUSH
14239: LD_INT 2
14241: PPUSH
14242: CALL_OW 322
// SetTech ( 49 , 5 , state_Researched ) ;
14246: LD_INT 49
14248: PPUSH
14249: LD_INT 5
14251: PPUSH
14252: LD_INT 2
14254: PPUSH
14255: CALL_OW 322
// SetTech ( 51 , 5 , state_Researched ) ;
14259: LD_INT 51
14261: PPUSH
14262: LD_INT 5
14264: PPUSH
14265: LD_INT 2
14267: PPUSH
14268: CALL_OW 322
// SetTech ( 52 , 5 , state_Researched ) ;
14272: LD_INT 52
14274: PPUSH
14275: LD_INT 5
14277: PPUSH
14278: LD_INT 2
14280: PPUSH
14281: CALL_OW 322
// end ; end ;
14285: GO 14288
14287: POP
// end ; end_of_file
14288: END
// every 0 0$01 trigger IsDead ( Nefarem ) do
14289: LD_EXP 10
14293: PPUSH
14294: CALL_OW 301
14298: IFFALSE 14310
14300: GO 14302
14302: DISABLE
// begin YouLost ( Nef ) ;
14303: LD_STRING Nef
14305: PPUSH
14306: CALL_OW 104
// end ;
14310: END
// every 0 0$01 trigger IsDead ( Mjr ) do
14311: LD_EXP 9
14315: PPUSH
14316: CALL_OW 301
14320: IFFALSE 14332
14322: GO 14324
14324: DISABLE
// begin YouLost ( Mjr ) ;
14325: LD_STRING Mjr
14327: PPUSH
14328: CALL_OW 104
// end ;
14332: END
// every 0 0$01 trigger IsDead ( depotAM ) do
14333: LD_INT 14
14335: PPUSH
14336: CALL_OW 301
14340: IFFALSE 14352
14342: GO 14344
14344: DISABLE
// begin YouLost ( baza ) ;
14345: LD_STRING baza
14347: PPUSH
14348: CALL_OW 104
// end ;
14352: END
// on Contact ( side1 , side2 ) do begin if side1 = 1 and side2 = 4 then
14353: LD_VAR 0 1
14357: PUSH
14358: LD_INT 1
14360: EQUAL
14361: PUSH
14362: LD_VAR 0 2
14366: PUSH
14367: LD_INT 4
14369: EQUAL
14370: AND
14371: IFFALSE 14380
// begin YouLost ( soj ) ;
14373: LD_STRING soj
14375: PPUSH
14376: CALL_OW 104
// end ; end ; end_of_file
14380: PPOPN 2
14382: END
// export function medale ; begin
14383: LD_INT 0
14385: PPUSH
// if medal1 = true then
14386: LD_EXP 2
14390: PUSH
14391: LD_INT 1
14393: EQUAL
14394: IFFALSE 14408
// begin AddMedal ( med1 , 1 ) end else
14396: LD_STRING med1
14398: PPUSH
14399: LD_INT 1
14401: PPUSH
14402: CALL_OW 101
14406: GO 14419
// begin AddMedal ( med1 , - 1 ) ;
14408: LD_STRING med1
14410: PPUSH
14411: LD_INT 1
14413: NEG
14414: PPUSH
14415: CALL_OW 101
// end ; if FilterAllUnits ( [ [ f_side , 4 ] , [ f_btype , b_control_tower ] ] ) >= 1 and Researched ( 4 , tech_Opto1 ) then
14419: LD_INT 22
14421: PUSH
14422: LD_INT 4
14424: PUSH
14425: EMPTY
14426: LIST
14427: LIST
14428: PUSH
14429: LD_INT 30
14431: PUSH
14432: LD_INT 36
14434: PUSH
14435: EMPTY
14436: LIST
14437: LIST
14438: PUSH
14439: EMPTY
14440: LIST
14441: LIST
14442: PPUSH
14443: CALL_OW 69
14447: PUSH
14448: LD_INT 1
14450: GREATEREQUAL
14451: PUSH
14452: LD_INT 4
14454: PPUSH
14455: LD_INT 60
14457: PPUSH
14458: CALL_OW 325
14462: AND
14463: IFFALSE 14477
// begin AddMedal ( med2 , 1 ) ;
14465: LD_STRING med2
14467: PPUSH
14468: LD_INT 1
14470: PPUSH
14471: CALL_OW 101
// end else
14475: GO 14488
// begin AddMedal ( med2 , - 1 ) ;
14477: LD_STRING med2
14479: PPUSH
14480: LD_INT 1
14482: NEG
14483: PPUSH
14484: CALL_OW 101
// end ; if Escapers <= 13 then
14488: LD_EXP 17
14492: PUSH
14493: LD_INT 13
14495: LESSEQUAL
14496: IFFALSE 14520
// begin AddMedal ( med3 , 1 ) ;
14498: LD_STRING med3
14500: PPUSH
14501: LD_INT 1
14503: PPUSH
14504: CALL_OW 101
// SaveVariable ( 1 , medal_variable ) ;
14508: LD_INT 1
14510: PPUSH
14511: LD_STRING medal_variable
14513: PPUSH
14514: CALL_OW 39
// end else
14518: GO 14541
// begin AddMedal ( med3 , - 1 ) ;
14520: LD_STRING med3
14522: PPUSH
14523: LD_INT 1
14525: NEG
14526: PPUSH
14527: CALL_OW 101
// SaveVariable ( 2 , medal_variable ) ;
14531: LD_INT 2
14533: PPUSH
14534: LD_STRING medal_variable
14536: PPUSH
14537: CALL_OW 39
// end ; GiveMedals ( MAIN ) ;
14541: LD_STRING MAIN
14543: PPUSH
14544: CALL_OW 102
// end ; end_of_file
14548: LD_VAR 0 1
14552: RET
// export Escapers , Ucieczka ; every 0 0$1 trigger GetLives ( depotRU2 ) < 251 or IsDead ( depotRU2 ) or GetSide ( depotRU2 ) = 4 do var Units , i ;
14553: LD_INT 280
14555: PPUSH
14556: CALL_OW 256
14560: PUSH
14561: LD_INT 251
14563: LESS
14564: PUSH
14565: LD_INT 280
14567: PPUSH
14568: CALL_OW 301
14572: OR
14573: PUSH
14574: LD_INT 280
14576: PPUSH
14577: CALL_OW 255
14581: PUSH
14582: LD_INT 4
14584: EQUAL
14585: OR
14586: IFFALSE 14688
14588: GO 14590
14590: DISABLE
14591: LD_INT 0
14593: PPUSH
14594: PPUSH
// begin Ucieczka = true ;
14595: LD_ADDR_EXP 18
14599: PUSH
14600: LD_INT 1
14602: ST_TO_ADDR
// Units = FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_human ] ] ) ;
14603: LD_ADDR_VAR 0 1
14607: PUSH
14608: LD_INT 22
14610: PUSH
14611: LD_INT 6
14613: PUSH
14614: EMPTY
14615: LIST
14616: LIST
14617: PUSH
14618: LD_INT 21
14620: PUSH
14621: LD_INT 1
14623: PUSH
14624: EMPTY
14625: LIST
14626: LIST
14627: PUSH
14628: EMPTY
14629: LIST
14630: LIST
14631: PPUSH
14632: CALL_OW 69
14636: ST_TO_ADDR
// Say ( Units [ 1 ] , X1 ) ;
14637: LD_VAR 0 1
14641: PUSH
14642: LD_INT 1
14644: ARRAY
14645: PPUSH
14646: LD_STRING X1
14648: PPUSH
14649: CALL_OW 88
// ComExitBuilding ( Units ) ;
14653: LD_VAR 0 1
14657: PPUSH
14658: CALL_OW 122
// Wait ( 0 0$1 ) ;
14662: LD_INT 35
14664: PPUSH
14665: CALL_OW 67
// wait ( 0 0$01 ) ;
14669: LD_INT 35
14671: PPUSH
14672: CALL_OW 67
// ComMoveToArea ( Units , EscapeRoute ) ;
14676: LD_VAR 0 1
14680: PPUSH
14681: LD_INT 15
14683: PPUSH
14684: CALL_OW 113
// end ;
14688: PPOPN 2
14690: END
// every 0 0$1 trigger GetLives ( depotRU1 ) < 251 or IsDead ( depotRU1 ) or GetSide ( depotRU1 ) = 4 do var BuildingList , Units , i ;
14691: LD_INT 194
14693: PPUSH
14694: CALL_OW 256
14698: PUSH
14699: LD_INT 251
14701: LESS
14702: PUSH
14703: LD_INT 194
14705: PPUSH
14706: CALL_OW 301
14710: OR
14711: PUSH
14712: LD_INT 194
14714: PPUSH
14715: CALL_OW 255
14719: PUSH
14720: LD_INT 4
14722: EQUAL
14723: OR
14724: IFFALSE 14820
14726: GO 14728
14728: DISABLE
14729: LD_INT 0
14731: PPUSH
14732: PPUSH
14733: PPUSH
// begin Ucieczka = true ;
14734: LD_ADDR_EXP 18
14738: PUSH
14739: LD_INT 1
14741: ST_TO_ADDR
// Units = FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_human ] ] ) ;
14742: LD_ADDR_VAR 0 2
14746: PUSH
14747: LD_INT 22
14749: PUSH
14750: LD_INT 3
14752: PUSH
14753: EMPTY
14754: LIST
14755: LIST
14756: PUSH
14757: LD_INT 21
14759: PUSH
14760: LD_INT 1
14762: PUSH
14763: EMPTY
14764: LIST
14765: LIST
14766: PUSH
14767: EMPTY
14768: LIST
14769: LIST
14770: PPUSH
14771: CALL_OW 69
14775: ST_TO_ADDR
// Say ( Units [ 1 ] , X1 ) ;
14776: LD_VAR 0 2
14780: PUSH
14781: LD_INT 1
14783: ARRAY
14784: PPUSH
14785: LD_STRING X1
14787: PPUSH
14788: CALL_OW 88
// ComExitBuilding ( Units ) ;
14792: LD_VAR 0 2
14796: PPUSH
14797: CALL_OW 122
// wait ( 0 0$01 ) ;
14801: LD_INT 35
14803: PPUSH
14804: CALL_OW 67
// ComMoveToArea ( Units , EscapeRoute ) ;
14808: LD_VAR 0 2
14812: PPUSH
14813: LD_INT 15
14815: PPUSH
14816: CALL_OW 113
// end ;
14820: PPOPN 3
14822: END
// every 0 0$0.5 do var Units1 , Units2 , i ;
14823: GO 14825
14825: DISABLE
14826: LD_INT 0
14828: PPUSH
14829: PPUSH
14830: PPUSH
// begin enable ;
14831: ENABLE
// Units1 = FilterUnitsInArea ( EscapeRoute , [ [ f_side , 3 ] , [ f_type , unit_human ] ] ) ;
14832: LD_ADDR_VAR 0 1
14836: PUSH
14837: LD_INT 15
14839: PPUSH
14840: LD_INT 22
14842: PUSH
14843: LD_INT 3
14845: PUSH
14846: EMPTY
14847: LIST
14848: LIST
14849: PUSH
14850: LD_INT 21
14852: PUSH
14853: LD_INT 1
14855: PUSH
14856: EMPTY
14857: LIST
14858: LIST
14859: PUSH
14860: EMPTY
14861: LIST
14862: LIST
14863: PPUSH
14864: CALL_OW 70
14868: ST_TO_ADDR
// Units2 = FilterUnitsInArea ( EscapeRoute , [ [ f_side , 6 ] , [ f_type , unit_human ] ] ) ;
14869: LD_ADDR_VAR 0 2
14873: PUSH
14874: LD_INT 15
14876: PPUSH
14877: LD_INT 22
14879: PUSH
14880: LD_INT 6
14882: PUSH
14883: EMPTY
14884: LIST
14885: LIST
14886: PUSH
14887: LD_INT 21
14889: PUSH
14890: LD_INT 1
14892: PUSH
14893: EMPTY
14894: LIST
14895: LIST
14896: PUSH
14897: EMPTY
14898: LIST
14899: LIST
14900: PPUSH
14901: CALL_OW 70
14905: ST_TO_ADDR
// if Units1 > 0 or Units2 > 0 then
14906: LD_VAR 0 1
14910: PUSH
14911: LD_INT 0
14913: GREATER
14914: PUSH
14915: LD_VAR 0 2
14919: PUSH
14920: LD_INT 0
14922: GREATER
14923: OR
14924: IFFALSE 15006
// begin for i in Units1 do
14926: LD_ADDR_VAR 0 3
14930: PUSH
14931: LD_VAR 0 1
14935: PUSH
14936: FOR_IN
14937: IFFALSE 14964
// begin RemoveUnit ( i ) ;
14939: LD_VAR 0 3
14943: PPUSH
14944: CALL_OW 64
// Escapers = Escapers + 1 ;
14948: LD_ADDR_EXP 17
14952: PUSH
14953: LD_EXP 17
14957: PUSH
14958: LD_INT 1
14960: PLUS
14961: ST_TO_ADDR
// end ;
14962: GO 14936
14964: POP
14965: POP
// for i in Units2 do
14966: LD_ADDR_VAR 0 3
14970: PUSH
14971: LD_VAR 0 2
14975: PUSH
14976: FOR_IN
14977: IFFALSE 15004
// begin RemoveUnit ( i ) ;
14979: LD_VAR 0 3
14983: PPUSH
14984: CALL_OW 64
// Escapers = Escapers + 1 ;
14988: LD_ADDR_EXP 17
14992: PUSH
14993: LD_EXP 17
14997: PUSH
14998: LD_INT 1
15000: PLUS
15001: ST_TO_ADDR
// end ;
15002: GO 14976
15004: POP
15005: POP
// end ; end ;
15006: PPOPN 3
15008: END
